Поиск по сайту:

Защитите 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.