Введение
Let’s Encrypt — это центр сертификации (ЦС), который автоматизирует бесплатное создание, проверку, выпуск и обновление сертификатов X.509 для протокола TLS/SSL, обеспечивая шифрование HTTPS на веб-серверах.
В этом руководстве мы будем использовать Certbot, чтобы получить бесплатный SSL-сертификат для Apache в CentOS 8 и настроить сертификат для автоматического обновления.
Certbot — это простой в использовании автоматизированный клиент, который извлекает и распространяет сертификаты SSL/TLS для веб-сервера.
Установить Сертбот
CentOS в настоящее время не имеет собственной версии Certbot в репозитории, поэтому вам нужно использовать скрипт certbot-auto:
sudo dnf install wget
sudo wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
Certbot-auto автоматически устанавливает все зависимости и обновляет код клиента.
Подключаемые модули Certbot DNS, которые можно использовать для автоматизации получения группового сертификата с сервера ACMEv2 Let's Encrypt, пока недоступны для CentOS 8. Вы можете использовать эти подключаемые модули, запустив Certbot в Docker, для получения дополнительной информации см. официальную документацию.
Получить SSL-сертификат
Первым шагом в использовании Let's Encrypt для получения SSL-сертификата является установка программного обеспечения Certbot на ваш сервер.
sudo./certbot-auto --apache
Внимание! Вы можете столкнуться с ошибкой, подобной следующей:
Error while running apachectl configtest.
AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty
The apache plugin is not working; there may be problems with your existing configuration.
The error was: MisconfigurationError("Error while running apachectl configtest.\n\nAH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:\nSSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty\n",)
В этом случае вам нужно будет перезапустить Apache:
sudo systemctl restart httpd
Затем повторите приведенную выше команду, чтобы настроить Certbot и получить сертификат SSL:
sudo./certbot-auto --apache
В противном случае вы можете получить сертификат, а затем вручную настроить Apache с помощью следующей команды:
sudo./certbot-auto --apache certonly
Теперь Certbot готов к использованию.
Чтобы узнать больше о том, как использовать Certbot, прочитайте официальную документацию Certbot.
Автоматическое продление
Пакеты Certbot поставляются с заданием cron, которое автоматически обновляет ваши сертификаты до истечения срока их действия. Поскольку сертификаты Let's Encrypt действительны в течение 90 дней, настоятельно рекомендуется воспользоваться этой функцией. Вы можете проверить автоматическое обновление сертификатов, выполнив эту команду:
sudo./certbot-auto renew --dry-run
Если он работает нормально, вы можете настроить автоматическое обновление, добавив задание cron или системный таймер, который запускает эту команду:
./certbot-auto renew
Вывод
В этом руководстве мы увидели, как установить Let’s Encrypt с помощью Certbot в CentOS 8 Linux.