Введение
Let's Encrypt — это центр сертификации (ЦС), который автоматизирует бесплатное создание, проверку, выпуск и обновление сертификатов X.509 для протокола TLS/SSL, обеспечивая шифрование HTTPS на веб-серверах.
В этом руководстве мы будем использовать Certbot, чтобы получить бесплатный SSL-сертификат для Nginx в Debian и настроить сертификат для автоматического обновления.
Certbot — это простой в использовании автоматизированный клиент, который извлекает и распространяет сертификаты SSL/TLS для веб-сервера.
Установите Certbot на Debian
Первым шагом в использовании Let's Encrypt для получения SSL-сертификата является установка программного обеспечения Certbot на ваш сервер.
Обновим список пакетов:
sudo apt-get update
Давайте откроем следующий файл, чтобы добавить репозиторий бэкпортов Stretch, необходимый для установки Let's Encrypt:
nano /etc/apt/sources.list
Добавьте следующую строку:
deb http://ftp.debian.org/debian stretch-backports main
Давайте снова обновим список пакетов:
sudo apt-get update
И, наконец, установим пакет Certbot для Nginx:
sudo apt-get install python-certbot-nginx -t stretch-backports
Теперь Certbot готов к использованию.
Получить SSL-сертификат
Certbot использует плагин Nginx для получения SSL-сертификатов.
Выполнение этой команды позволит вам получить сертификат SSL, а Certbot автоматически изменит конфигурацию Nginx.
sudo certbot --authenticator webroot --installer nginx
Будет запрошена некоторая информация:
- Адрес электронной почты
- Примите условия обслуживания
- Доменное имя, на которое будут устанавливаться сертификаты
- Домен webroot, по умолчанию /var/www/html после установки Nginx
- Выберите, следует ли принудительно перенаправлять весь трафик на HTTPS с перенаправлением.
В противном случае вы можете получить сертификат, а затем вручную настроить Nginx с помощью следующей команды:
sudo certbot certonly --authenticator standalone --pre-hook "nginx -s stop" --post-hook "nginx"
Рекомендуется использовать nginx -s stop для остановки Nginx вместо таких команд, как systemctl или service. Используя такую команду ловушки, если вы автоматизируете обновление, Certbot автоматически остановит и запустит Nginx, когда вам нужно обновить сертификаты. Nginx автоматически начнет использовать все обновленные сертификаты.
Автоматическое продление
Пакеты Certbot поставляются с заданием cron, которое автоматически обновляет ваши сертификаты до истечения срока их действия. Поскольку сертификаты Let's Encrypt действительны в течение 90 дней, настоятельно рекомендуется воспользоваться этой функцией. Вы можете проверить автоматическое обновление сертификатов, выполнив эту команду:
sudo certbot renew --dry-run
Установка Let’s Encrypt с помощью Certbot в Debian 9 завершена.