LetsEncrypt
Установка
Пакет Let's Encrypt доступен для ALT Linux p8/9/10/11 и Сизифа.
apt-get install certbot
Запуск
На работающем веб-сервере скомандовать с указанием каталога сайта и домена:
certbot certonly --webroot -w$DIR -d$DOMAIN
letsencrypt должен создать в подкаталоге сайта /.well-known файлы, к которым сможет обратиться проверяющий сервер, пройдя по указанному домену. То есть проверить, что вы действительно имеете доступ к управлению сайтом.
Настройка
Указать в веб-сервере полученный для домена сертификат и закрытый ключ сервера. Пример для nginx:
ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.ru/chain.pem;
Периодическое обновление сертификата
Добавить в еженедельный планировщик или таймер команду /usr/bin/certbot -q renew
Фактическое обновление произойдёт только за месяц до окончания срока действия сертификата.
Для Apache2
Если в настройках виртуального хоста по умолчанию httpd2 настроены редиректы с http на https (как, например, в дистрибутивах «АЛЬТ Образование»), можно вернуться к доступу по HTTP с использованием скрипта, выполняющего следующее:
- отключение в конфиге виртуального хоста редиректов с HTTP на HTTPS;
- проверка корректности синтаксиса в этом конфиге;
- запрос выдачи нового сертификата;
- восстановление убранных прежде редиректов;
- перезапуск апача для перечитывания обновлённых сертификатов.
И добавить этот скрипт в еженедельный планировщик/таймер для своевременного обновления сертификата:
| /usr/local/bin/apachecert |
|---|
#!/bin/bash
DEF=/etc/httpd2/conf/sites-enabled/000-default.conf
LOG=/root/script_tmp/certbot_httpd2.log
sed -i "/^Rewrite/d;/<\/VirtualHost>/d" $DEF # Убрать редиректы и закрывающий тег секции
httpd2 -t 2> $LOG # Проверить синтаксис с логированием результата
systemctl reload httpd2 2>>$LOG # Перечитать конфиги httpd2
certbot -q renew 2>>$LOG # Запросить новый SSL
# Добавить в конфиг новые редиректы с закрывашкой:
cat <<EOF >>$DEF
RewriteEngine On
RewriteCond %{HTTPS} !=onRewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R,L]
</VirtualHost>
EOF
tail -n8 $DEF >>$LOG # Просмотреть внесенные изменения
systemctl restart httpd2 2>>$LOG # Перезапустить апача
|