LetsEncrypt

Материал из ALT Linux Wiki
Версия от 08:26, 1 декабря 2025; Дым (обсуждение | вклад) (→‎Для Apache2)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Установка

Пакет 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 # Перезапустить апача

Ссылки