Защитите Apache с помощью SSL-сертификата Lets Encrypt на CentOS 8
Безопасность вашего веб-сервера всегда является одним из ключевых факторов, которые вы должны учитывать, прежде чем запускать свой веб-сайт. Сертификат безопасности имеет решающее значение для защиты трафика, отправляемого из веб-браузеров на веб-серверы, и тем самым побуждает пользователей обмениваться данными с вашим веб-сайтом, полностью зная, что отправляемый трафик защищен.
В большинстве случаев сертификаты безопасности оплачиваются и продлеваются ежегодно. Сертификат Let’s Encrypt – это бесплатный, открытый и автоматизированный центр сертификации, который вы можете использовать для шифрования своего сайта. Срок действия сертификата истекает каждые 90 дней и автоматически продлевается совершенно бесплатно.
Рекомендуется к прочтению: как защитить Nginx с помощью Let’s Encrypt в CentOS 8
В этой статье мы покажем вам, как установить Сертификат Let's Encrypt с помощью Certbot для веб-сервера Apache, а затем настроить сертификат. для автоматического продления в CentOS 8.
Предварительные условия
Прежде чем приступить к работе, убедитесь, что у вас есть следующее:
1. Экземпляр сервера CentOS 8 с установленным и работающим веб-сервером Apache HTTP. Вы можете убедиться, что ваш веб-сервер Apache запущен и работает.
sudo dnf install httpd
sudo systemctl status httpd
2. Полное доменное имя (FQDN), указывающее на общедоступный IP-адрес вашего веб-сервера у вашего DNS-провайдера веб-хостинга. В этом руководстве мы будем использовать linuxtechwhiz.info
, указывающий на IP-адрес сервера 34.67.63.136
.
Шаг 1. Установите Certbot в CentOS 8.
Certbot — клиент, автоматизирующий установку сертификата безопасности. Он получает сертификат из Let’s Encrypt Authority и без особых хлопот развертывает его на вашем веб-сервере.
Certbot абсолютно бесплатен и позволит вам установить сертификат в интерактивном режиме, генерируя инструкции на основе конфигурации вашего веб-сервера.
Прежде чем загружать certbot, сначала установите пакеты, необходимые для настройки зашифрованного соединения.
Мы начнем с установки репозитория EPEL, который предоставляет высококачественные дополнительные пакеты для систем на базе RHEL:
sudo dnf install epel-release
Затем установите пакеты mod_ssl и openssl.
sudo dnf install mod_ssl openssl
После установки всех зависимостей установите Certbot и модуль Apache для Certbot.
sudo dnf install certbot python3-certbot-apache
Команда устанавливает Certbot, модуль Apache для Certbot и другие зависимости.
Шаг 2. Создайте виртуальный хост Apache
Следующим шагом будет создание файла виртуального хоста для нашего домена — linuxtechwhiz.info
. Начните с создания корня документа, в котором вы будете размещать свои HTML-файлы.
sudo mkdir /var/www/linuxtechwhiz.info.conf
Создайте тестовый файл index.html
, как показано.
sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html
Затем создайте файл виртуального хоста, как показано.
sudo vim /etc/httpd/conf.d/linuxtechwhiz.info
Добавьте конфигурацию ниже.
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>
Сохранить и выйти.
Назначьте разрешения корню документа, как показано.
sudo chown -R apache:apache /var/www/linuxtechwhiz.info
Чтобы изменения вступили в силу, перезапустите службу Apache.
sudo systemctl restart httpd
Шаг 3. Установите SSL-сертификат Let’s Encrypt на CentOS 8.
Теперь запустите certbot, как показано, чтобы начать установку сертификата Let’s Encrypt.
sudo certbot --apache -d domain.com
В нашем случае это будет:
sudo certbot --apache -d linuxtechwhiz.info
Команда проведет вас через ряд подсказок, которые позволят вам настроить Lets Encrypt для вашего домена. Обязательно укажите свой адрес электронной почты, примите Условия обслуживания и укажите доменные имена, которые вы хотите использовать по протоколу HTTPS, который является зашифрованной версией HTTP.
Если все прошло хорошо, в конце вы должны получить поздравительное сообщение, информирующее о том, что ваш сайт защищен с помощью сертификата Let’s Encrypt. Также будет показан срок действия вашего сертификата, который обычно наступает через 90 дней после развертывания.
Теперь вернитесь к файлу виртуального хоста и добавьте следующие строки конфигурации.
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
Сохранить и выйти.
Окончательная конфигурация виртуального хоста Apache будет выглядеть примерно так:
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>
Еще раз перезапустите Apache.
sudo systemctl restart httpd
Шаг 4. Проверка SSL-сертификата Let’s Encrypt
Чтобы убедиться, что все работает, запустите браузер и посетите IP-адрес вашего сервера. Теперь вы должны увидеть символ замка в начале URL-адреса.
Чтобы получить более подробную информацию, нажмите на символ замка и выберите опцию «Сертификат» в появившемся раскрывающемся меню.
Детали сертификата отобразятся в следующем всплывающем окне.
Кроме того, вы можете протестировать свой сервер по адресу https://www.ssllabs.com/ssltest/
, и ваш сайт должен получить оценку ’A’
, как показано.
Шаг 5. Автоматическое продление SSL-сертификата Let’s Encrypt
Let’s Encrypt действителен только в течение 90 дней. Обычно процесс обновления выполняется пакетом certbot, который добавляет сценарий обновления в каталог /etc/cron.d. Сценарий запускается два раза в день и автоматически обновляет любой сертификат в течение 30 дней после истечения срока его действия.
Чтобы протестировать процесс автоматического продления, проведите тестовый прогон с помощью certbot.
sudo /usr/local/bin/certbot-auto renew --dry-run
Если ошибок не обнаружено, значит, все готово.
Это подводит нас к концу данного руководства. В этом руководстве мы продемонстрировали, как использовать certbot для установки и настройки сертификата Let’s Encrypt на веб-сервере Apache, работающем в системе CentOS 8.