Электронную библиотеку 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