home

Как бесплатно получить wildcard SSL-сертификат с помощью Let’s Encrypt

Электронную библиотеку ELiS рекомендуется использовать только по HTTPS, а значит надо получить SSL-сертификат. Причин работать только по HTTPS множество, от заботы о безопасности данных пользователей при работе в беспроводных сетях, до невозможности встраивания embed-кодом HTTP-ресурсов на HTTPS-сайтах.

Ситуация осложняется тем, что для ELiS рекомендуется wildcard-сертификат, который необходим при использование модуля ELiS Site, динамически регистрирующего сайты на документы и каталоги.

Бесплатно wildcard-сертификат стало возможно получить относительно недавно, но для этого необходимо контролировать DNS-зону.

Получение wildcard-сертификата с помощью Let’s Encrypt[править]

1) Вначале надо установить certbot любым удобным способом.

2) На момент написания статьи не каждый сервер Let’s Encrypt поддерживал выдачу wildcard-сертификата. Поэтому надо указать с каким конкретно сервером работать для получения сертификата. Получается сертификат из папки со скачанным certbot на домен *.elis.example.com и elis.example.com:

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

Проверить наличие нужных TXT-записей под Windows можно командой:

nslookup -q=txt _acme-challenge.elis.example.com

3) В процессе работы скрипта сервер попросит создать в DNS две TXT-записи на _acme-challenge.elis.example.com для подтверждения наличия прав на управление DNS-зоной. TXT-записи должны быть созданы одновременно.

Поздравляю, сертификат получен.

4) Перезагрузите веб-сервер, чтобы обновленный сертификат подхватился.

# nginx -s reload

5) Дальнейшие обновления надо проводить путем повторения пунктов 2-4 не реже 1 раза в три месяца.

Пример для получения сертификатов в CentOS8 для ELiS[править]

В ELiS certbot устанавливается в процессе установки ELiS.

Вначале вам надо добавить поддержку SSL в nginx, включив в секцию server файла /etc/nginx/conf.d/elis.conf

    listen       443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/elis.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/elis.example.com/privkey.pem;

Затем можно получить сертификат и перезагрузить nginx:

# certbot-auto certonly --manual -d *.elis.example.com -d elis.example.com --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
# systemctl reload nginx