This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
let_s_encrypt_для_внутренних_сайтов [2025/12/22 10:30] val |
let_s_encrypt_для_внутренних_сайтов [2025/12/26 17:08] (current) val |
||
|---|---|---|---|
| Line 10: | Line 10: | ||
| Однажды администратор одного из внутренних сайтов предприятия попросил прописать TXT запись для получения Let's Encrypt сертификата, поскольку сайт не доступен снаружи и, нет возможности настроить проверку [[https://letsencrypt.org/ru/docs/challenge-types/#проверка-http-01|HTTP-01]]. Через три месяца попросил прописать еще раз, для продления, потом появился второй такой сайт, и, стало очевидно, что процесс пора автоматизировать. Уже перед публикацией нашлась [[https://habr.com/ru/articles/925358/|отличная статья]] с полезными комментариями, автору понадобилась та же [[https://letsencrypt.org/ru/docs/challenge-types/#проверка-dns-01|проверка DNS-01]] и стандарт RFC 2136 для автоматизации выпуска [[https://ru.wikipedia.org/wiki/Wildcard-сертификат|wildcard сертификата]] | Однажды администратор одного из внутренних сайтов предприятия попросил прописать TXT запись для получения Let's Encrypt сертификата, поскольку сайт не доступен снаружи и, нет возможности настроить проверку [[https://letsencrypt.org/ru/docs/challenge-types/#проверка-http-01|HTTP-01]]. Через три месяца попросил прописать еще раз, для продления, потом появился второй такой сайт, и, стало очевидно, что процесс пора автоматизировать. Уже перед публикацией нашлась [[https://habr.com/ru/articles/925358/|отличная статья]] с полезными комментариями, автору понадобилась та же [[https://letsencrypt.org/ru/docs/challenge-types/#проверка-dns-01|проверка DNS-01]] и стандарт RFC 2136 для автоматизации выпуска [[https://ru.wikipedia.org/wiki/Wildcard-сертификат|wildcard сертификата]] | ||
| - | Так, что, постараюсь кратко, как "шпаргалку", для тех, кто использует сервер DNS сервер bind и хочет делегировать выпуск/проверку Let`s Encrypt сертификатов для внутренних сайтов сторонним подразделениям. | + | Так, что, предлагаю краткую "шпаргалку с заменой по Ctrl+H", для тех, кто использует сервер DNS сервер bind и хочет делегировать выпуск/проверку Let`s Encrypt сертификатов для внутренних сайтов сторонним подразделениям. |
| Инструкция для администратора DNS сервера: | Инструкция для администратора DNS сервера: | ||
| - | Назначьте IP адрес для очередного внутреннего сайта и опишите зону, для будущей DNS-01 проверки с единственным DNS сервером | + | Назначьте IP адрес для очередного внутреннего сайта и опишите зону, для будущей DNS-01 проверки с единственным DNS сервером (не забудьте увеличить номер версии зоны:) |
| <code> | <code> | ||
| dns# nano /etc/bind/yourdomain.ru | dns# nano /etc/bind/yourdomain.ru | ||
| Line 36: | Line 36: | ||
| </code> | </code> | ||
| - | Создайте минимальный файл зоны, в каталоге и с правами, которые, в дальнейшем, позволят редактировать его через сервис named | + | Создайте минимальный файл зоны, в каталоге и, с правами, которые, в дальнейшем, позволят редактировать его через сервис named |
| <code> | <code> | ||
| dns# sudo -u bind nano /var/lib/bind/_acme-challenge.anysiteN.yourdomain.ru | dns# sudo -u bind nano /var/lib/bind/_acme-challenge.anysiteN.yourdomain.ru | ||
| Line 45: | Line 45: | ||
| </code> | </code> | ||
| - | Добавьте поддержку зоны в настройки DNS сервера, и укажите права на ее редактирование для созданного ключа | + | Добавьте поддержку зоны в настройки DNS сервера, и укажите права на добавление в нее TXT записей для созданного ключа |
| <code> | <code> | ||
| dns# nano /etc/bind/named.conf.local | dns# nano /etc/bind/named.conf.local | ||
| Line 53: | Line 53: | ||
| file "/var/lib/bind/_acme-challenge.anysiteN.yourdomain.ru"; | file "/var/lib/bind/_acme-challenge.anysiteN.yourdomain.ru"; | ||
| update-policy { | update-policy { | ||
| - | grant certbot.anysiteN name _acme-challenge.anysiteN.yourdomain.ru. txt; | + | grant certbot.anysiteN name _acme-challenge.anysiteN.yourdomain.ru. TXT; |
| }; | }; | ||
| }; | }; | ||
| Line 68: | Line 68: | ||
| Для первого сайта стоит провести [[https://habr.com/ru/articles/925358/|Проверки работоспособности]] | Для первого сайта стоит провести [[https://habr.com/ru/articles/925358/|Проверки работоспособности]] | ||
| - | Процесс обновления будет сопровождаться появлением в журнале записей вида: | + | Процесс выпуcка/обновления сертификатов будет сопровождаться появлением в журнале записей вида: |
| <code> | <code> | ||
| dns# journalctl | grep -i _acme-challenge.anysiteN | dns# journalctl | grep -i _acme-challenge.anysiteN | ||
| ... | ... | ||
| - | Nov 26 14:06:37 ns named[213146]: client @0x7f4711f3f898 172.19.32.16#60008/key certbot.anysiteN: view yourdomainnet: updating zone '_acme-challenge.anysiteN.yourdomain.ru/IN': adding an RR at '_acme-challenge.anysiteN.yourdomain.ru' TXT "7VqXPt5zZ36jRFe9A61om1OALWFloaI2Rz7_OGtFYpM" | + | Dec 22 12:48:40 ns named[213146]: client @0x7f47161dac98 195.19.40.42#45142/key certbot.anysite: view dmz: updating zone '_acme-challenge.anysiteN.yourdomain.ru/IN': adding an RR at '_acme-challenge.anysiteN.yourdomain.ru' TXT "JikZ0ZHCUv4Bdk5AQ7DimCHAf46xeBAOOEu_-PPbH2U" |
| + | Dec 22 12:49:44 ns named[213146]: client @0x7f4711727c98 195.19.40.42#33991/key certbot.anysite: view dmz: updating zone '_acme-challenge.anysiteN.yourdomain.ru/IN': deleting an RR at _acme-challenge.anysiteN.yourdomain.ru TXT | ||
| ... | ... | ||
| + | </code> | ||
| Если все работает, извлекаем имя и значение ключа из файла | Если все работает, извлекаем имя и значение ключа из файла | ||
| Line 127: | Line 128: | ||
| </code> | </code> | ||
| - | На этом все, но, если хотите посмотреть с самого начала, что такое сертификаты Let's Encrypt и как с ними работать, приглашаю посмотреть мой вебинар "Все, что нужно знать про Let's Encrypt: от localhost до Kubernetes" | + | На этом все, но, если хотите посмотреть с самого начала, что такое сертификаты Let's Encrypt и как с ними работать, приглашаю посмотреть мой вебинар: [[https://rutube.ru/video/61ae7d137f22c4180c186e32683f731f/|"Все, что нужно знать про Let's Encrypt: от localhost до Kubernetes"]] |
| Спасибо! | Спасибо! | ||