Wildcard SSL сертификат

wildcard SSL сертификат подходит для доменного имени и всех поддоменов. Одни и те же файлы сертификата, цепочки доверия и приватного ключа могут быть прописаны в виртуальных хостах неограниченного количества сайтов на разных машинах.

 

 

Wildcard SSL сертификат Let's Encrypt на Ubuntu 18

 

Wildcard SSL сертификат от Let's Encrypt можно выпустить установив на сервере стандартный клиент Certbot.

Для таких систем как Debian 9 и Ubuntu 18 на официальном сайте заявлено, что возможность выпуска сертификатов для всех поддоменов отсутствует. На практике никаких проблем не наблюдается.

 

 

В примере используется плагин Apache. Сертификаты генерируются для одноименного веб-сервера.

 

Убедимся в том, что используется Apache — имя веб-сервера ожидаем увидеть в выводе

netstat -nltp | grep 443

 

Или для порта 80 если ни одного сертификата еще нет:

netstat -nltp | grep 80

 

Обновляем список репозиториев

apt-get update

 

Устанавливаем пакет add-apt-repository, который нужен для добавления репозиториев ppa из командной строки

apt-get install software-properties-common

 

Теперь можно добавить репозиторий

add-apt-repository ppa:certbot/certbot

 

This is the PPA for packages prepared by Debian Let's Encrypt Team and backported for Ubuntu(s).
More info: https://launchpad.net/~certbot/+archive/ubuntu/certbot

ENTER

 

Снова обновляем информацию

apt-get update

 

И устанавливаем клиент

apt install certbot

 

 

certbot certonly —manual -d *.example.com —agree-tos —no-bootstrap —manual-public-ip-logging-ok —preferred-challenges dns-01 —server https://acme-v02.api.letsencrypt.org/directory

 

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@example.com

 

Далее certbot запросит согласие присылать письма с новостями, можно ответить Yes. Слишком часто подобные сообщения не приходят.

 

Поскольку в строке запроса указан метод валидации — DNS будет предложено добавить для домена DNS запись типа TXT.

 

Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:

spl5wSHiFuHXMyKR65qaWQLREmRv_KKSuwaV4bxleTs

 


Добавление и проверка DNS записи

Запись добавляется в личном кабинете компании, предоставляющей хостинг DNS для домена. Подтвердить, что запись добавлена нужно нажав ENTER. Предварительно стоит убедиться в том, что отдается верное значение при помощи dig.

 

dig _acme-challenge.example.com txt +short

«spl5wSHiFuHXMyKR65qaWQLREmRv_KKSuwaV4bxleTs»


 

 

Если никаких ошибок не произошло сертификат будет выпущен:

 

IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2018-12-14. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
«certbot renew»

 

В последней строке можно увидеть, что продлевается сертификат при выполнении certbot renew

 

Не трогая сертификат можно проверить завершится ли процесс успешно (в день выпуска сертификата проверить этого нельзя)

certbot renew —dry-run

 

 

В случае возникновения ошибок можно посмотреть информацию в логе

tail /var/log/letsencrypt/letsencrypt.log

 

Иногда обращения к серверам letsencrypt.org завершаются закрытием соединения со стороны последних, поэтому команду может потребоваться выполнить дважды. По этой же причине продление (по CRON) лучше выполнять не раз в три месяца, а минимум 4-6 раз.

 

Про установку SSL сертификата на Apache.