Небольшая заметка про wildcard сертификаты Let’s Encrypt

в 15:33, , рубрики: devops, docker, Geektimes, LetsEncrypt, системное администрирование, хостинг

Все уже, наверное, в курсе про такую организацию как Let’s Encrypt.
С некоторых пор там можно получить и wildcard сертификат.
В этой короткой заметке я опишу пару не очень очевидных моментов, с которыми столкнулся.

1. Wildcard сертификат можно получить только через DNS plugins:

Doing domain validation in this way is the only way to obtain wildcard certificates from Let’s Encrypt.

Т.е. наши варианты — это либо один из DNS plugins, либо manual + preferred-challenges=dns-01.

Подробнее здесь.
Использование DNS plugins подробно описано в документации по ссылке выше.

При использовании режима manual, нужно будет вручную добавить TXT запись в DNS. Эта запись каждый раз будет разная, т.е. автоматическое продление сертификата в этом случае возможно только через хуки certbot. Там же, кстати, можно повесить и команду, например, на рестарт nginx.

2. Нужно использовать сервер с API v.2:

https://acme-v02.api.letsencrypt.org/directory

Вероятно в будущих версиях certbot произойдет переход на использование API v.2 по умолчанию, но пока вот так.

Я использую docker для запуска certbot. Весьма удобно.
Таким образом, команда для получения сертификата получается вот такая:

docker run -it --rm 
-v /docker/volumes/etc/letsencrypt:/etc/letsencrypt 
-v /docker/volumes/var/lib/letsencrypt:/var/lib/letsencrypt 
-v /docker/volumes/var/log/letsencrypt:/var/log/letsencrypt 
certbot/certbot 
certonly --manual 
--preferred-challenges dns-01 
--server https://acme-v02.api.letsencrypt.org/directory 
--register-unsafely-without-email --agree-tos 
--manual-public-ip-logging-ok 
-d example.com -d *.example.com

Результаты работы certbot будут доступны в /docker/volumes/, откуда их можно подключать в другие контейнеры.

Обратите внимание на ключ «manual-public-ip-logging-ok» — если его не указать, то появляется вот такой вопрос при запуске:

NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?

Как я понял, пока адреса нигде не доступны (но логируются), их публикация есть в ближайших планах. На мой личный взгляд, немного странная политика.

Автор: Denis

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js