Добрый день. Пишу роль для автоматизации получения сертификаторв Let's Encrypt. Нормально получаю

wildcard сертификаты. Однако, я получаю сертификаты, где CN = *.example.com и alternate name - список из wildcard: *.example.com, *.1.example.com и т.д. Такой сертификат нормально работает для субдоменов, типа www.example.com. Однако, для example.com (без www), он недействителен.

Использую модули acme_certificate, openssl_csr, openssl_privatekey. Режим челенджа: dns.

Суть такова, что я использую словарь с зонами, где ключи - зоны типа example.com, а значение ключа - список из субдоменов и wildcards.
При формировании CSR через openssl_csr, я задаю common_name=example.com, subject_alt_name= *.example.com, получаю обычный CSR.
Далее, при запуске челенджа, модуль acme_certificate формирует из example.com и *.example.com отдельные TXT записи со своими индивидуальными токенами. Но модуль требует занести их в _acme-challenge.example.com

Получается проблема. Для двух разных записей (example.com и *.example.com) модуль ищет свой токен в одной TXT записи _acme-challenge.example.com. Когда я заношу в ДНС токены, естественно, в запись попадает лишь один токен и челлендж падает.

Отсюда вопрос, как получить wildcard сертификат за один проход, который бы был действителен как для example.com, так и для *.example.com?

12 ответов

14 просмотров

А уверены, что он не действителен для доменов example.com?

а ДНС где?

пример для CF https://privatebin.net/?c5ffda0e80688ff4#A7M1ReCrMny3BRxjWjx11LV13vEqmZRpvx5NaK6Vrc2i . могу роль в ЛС скинуть если не понятно будет

Дмитрий-Норкин Автор вопроса
Lamobot
А уверены, что он не действителен для доменов exam...

да, насколько мне удалось нагуглить сведений (NIC.ru, хабр и остальные стексоверфло)

Дмитрий Норкин
да, насколько мне удалось нагуглить сведений (NIC....

Хмм, цитата с сайта LE Orders that contain both a base domain and its wildcard equivalent (e.g. *.example.com and example.com) are valid. In that case, there will be two authorization objects in the order for “example.com”, one of which represents the wildcard validation and one of which represents the base domain validation.

Дмитрий-Норкин Автор вопроса
Отделение Bereke Bank Ор
а ДНС где?

Днс у нас локальный, на базе Powerdns. При помощи ansible-модуля URI я заношу TXT запись, а потом при помощи модуля shell вызываю dig до тех пор, пока оба ns1 и ns2 не вернут искомую TXT запись. После успеха продолжается челендж

Дмитрий Норкин
Днс у нас локальный, на базе Powerdns. При помощи ...

Уберите этот dig совсем и используйте acme_certificate с until+retries+delay

Дмитрий Норкин
Днс у нас локальный, на базе Powerdns. При помощи ...

register: acme_cert_generation_result until: not acme_cert_generation_result.failed retries: 5 delay: 180

Дмитрий-Норкин Автор вопроса
Lamobot
Уберите этот dig совсем и используйте acme_certifi...

я опасаюсь, что в таком случае LE меня забанит за многочисленные обращения. И потом, а чем dig плох? АКМЕ обращается лишь к нашим NS

Дмитрий-Норкин Автор вопроса
Lamobot
Меня не банит :)

Цикл проверок на наличие TXT записей в ns2 - name: Validate DNS record lookup shell: "dig +nocmd {{ item.key }} txt +noall +answer +short +nocookie @{{ response_dns_server }}" register: result until: "result.stdout | regex_replace('\"','') in item.value" retries: 10 delay: 30 with_items: "{{ query('dict', sample_com_challenge.challenge_data_dns|default({})) }}"

Дмитрий-Норкин Автор вопроса
Lamobot
Меня не банит :)

тем не менее, я пока не понимаю, как это мне поможет)

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
8
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
8
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Всем привет! Взялся портировать модули на 18 версию, лезет _logger.log(log_level, 'no translation language detected, skipping translation %s', frame, stack_info=True) А чт...
Max Lit
3
Доброе утро, а кто то делал Google аналитику через php ? curl_setopt($ch, CURLOPT_NOSIGNAL, true); Это должно быть async без ожидания ответа. Вообще php нормально с таким с...
Max Dubovsky
9
Карта сайта