Содержание
Let's Encrypt + nginx в CentOS 7
CentOS 7
Подключаем EPEL
# yum install epel-release
Устанавливаем certbot для nginx
# yum install python2-certbot-nginx
Для apache
# yum install python2-certbot-apache
Видимо в скором времени придется перейти на более легковесное решение acme.sh, потому-что уж больно много пакетов устанавливается. А сайт certbot чересчур активно продвигает установку через snapd.
Получаем сертификат для nginx
# certbot certonly --nginx
Получаем сертификат для apache
# certbot certonly --apache
Опция certonly подразумевает, что certbot только получит сертификат, но не будет автоматически менять конфигурационный файл веб-сервера.
При первом запуске certbot необходимо будет указать email и принять ToS.
CentOS 8
Подключаем EPEL
# dnf install epel-release
Устанавливаем certbot для nginx
# dnf install python3-certbot-nginx
Для apache
# dnf install python3-certbot-apache
Проверка автоматического обновления сертификатов
# certbot renew --dry-run
Автоматическое обновление
Никаких /etc/crontab или /etc/cron.d. В сети много вредных советов.
Для автоматического обновления существует systemd timer.
systemd service файл
# cat /usr/lib/systemd/system/certbot-renew.service [Unit] Description=This service automatically renews any certbot certificates found [Service] EnvironmentFile=/etc/sysconfig/certbot Type=oneshot ExecStart=/usr/bin/certbot renew --noninteractive --no-random-sleep-on-renew $PRE_HOOK $POST_HOOK $RENEW_HOOK $DEPLOY_HOOK $CERTBOT_ARGS
systemd таймер
# cat /usr/lib/systemd/system/certbot-renew.timer [Unit] Description=This is the timer to set the schedule for automated renewals [Timer] OnCalendar=*-*-* 00/12:00:00 RandomizedDelaySec=12hours Persistent=true [Install] WantedBy=timers.target
Нужно только запустить их и добавить в автозагрузку
# systemctl enable certbot-renew.service # systemctl start certbot-renew.service # systemctl enable certbot-renew.timer # systemctl start certbot-renew.timer
EOM
Обсуждение