LetsEncrypt - это сервис, который предоставляет пользователям бесплатные сертификаты SSL / TLS. Certbot - это клиент, который делает это простым и автоматизированным. Кроме того, он имеет плагины для Apache и Nginx, которые делают автоматизацию генерации сертификатов еще проще.
Инструкции по установке для большинства дистрибутивов Linux можно найти на веб-сайте Certbot.

После установки пакетов вы готовы создать новый сертификат.
апаш
После установки Certbot и плагина Apache генерация сертификата выполняется с помощью следующей команды.
certbot certonly --apache --noninteractive --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
Обновите разделы «SSLCertificateFile» и «SSLCertificateKeyFile», а затем перезапустите службу.
Добавьте работу в cron, чтобы сертификат автоматически обновлялся.
echo "0 0 * * * Обновление root-сертификата root --quiet --no-self-upgrade --post-hook $0027systemctl reload apache2$0027" | sudo tee -a /etc/cron.d/renew_certbot
HAProxy
HAProxy в настоящее время не имеет плагин Certbot. Чтобы избежать этого, запустите Certbot в автономном режиме и прокси-трафик через вашу сеть.
Включите интерфейс и бэкэнд в указанной выше конфигурации, а затем запустите Certbot.
certbot certonly --standalone --preferred-challenge http-01 --http-01-port 8888 --нонерактивный --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
Порт можно изменить на любой другой, но убедитесь, что настройки HAProxy и ваша команда Certbot совпадают.
HAProxy должен иметь сертификат и сцепленные файлы ключей в одном и том же файле, чтобы правильно его прочитать. Это можно сделать с помощью следующей команды.
cat /etc/letsencrypt/live/domain_name/fullchain.pem /etc/letsencrypt/live/domain_name/privkey.pemРазбейте привязку *: 443 и раздел перенаправления в настройках, затем перезагрузите сервис.
Автоматическое продление сертификатов
Поместите следующий скрипт в / usr / local / bin / для автоматического обновления вашего SSL-сертификата.
SITE = DOMAIN_NAME# перейдите к правильному, мы зашифруем файлы каталогов directory / cd / etc / letsencrypt / live / $SITIO#, чтобы сделать их комбинированными .pem для haproxycat fullchain.pem privkey.pem> /etc/ssl/$SITIO.pem1TPxer reloadУбедитесь, что скрипт исполняемый.
chmod u + x /usr/local/bin/letsencrypt-renew.shДобавьте работу в cron, чтобы сертификат автоматически обновлялся.
@mensual / usr / bin / certbot renew --renew-hook "/usr/local/bin/letsencrypt-renew.sh"; /var/log/letsencrypt-renewal.logNginx
После установки Certbot и плагина Nginx с помощью sudo apt установите certbot python3-certbot-nginx, сгенерируйте сертификат.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email YOUR_EMAIL -d YOUR_DOMAINДобавьте параметр --rsa-key-size 4096, если вы хотите вместо него использовать ключ 4096.
Скопируйте и вставьте весь пример файла конфигурации Nginx сверху, изменив параметры в соответствии с вашей конфигурацией и раскомментировав строки.
Добавьте работу в cron, чтобы сертификат автоматически обновлялся.
echo "0 0 * * * обновление корневого сертификата --quiet --no-self-upgrade --post-hook $0027systemctl reload nginx$0027" | sudo tee -a /etc/cron.d/renew_certbot