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

Как защитить Apache с помощью бесплатного SSL-сертификата Let's Encrypt в Ubuntu и Debian


У вас есть недавно зарегистрированное доменное имя, и ваш веб-сервер работает с выданным вами Самоподписанным сертификатом SSL, который вызывает головную боль у ваших клиентов при посещении домена из-за ошибок, сгенерированных сертификатом? У вас ограниченный бюджет и вы не можете позволить себе купить сертификат, выданный доверенным центром сертификации? Именно здесь на сцену выходит программное обеспечение Let’s Encrypt, которое спасает ситуацию.

Если вы хотите установить Let's Encrypt для Apache или Nginx на RHEL, CentOS, Fedora или Ubuntu и Debian, следуйте этим руководствам ниже:

Настройка Let’s Encrypt для защиты Apache в RHEL и CentOS 7/6

Настройка Let’s Encrypt для защиты Nginx в Ubuntu и Debian

Let's Encrypt — это центр сертификации (CA), который помогает вам получить бесплатные сертификаты SSL/TLS, необходимые для вашего сервер работает безопасно, обеспечивая удобство просмотра для ваших пользователей без каких-либо ошибок.

Пример среды тестирования

Все шаги, необходимые для создания сертификата, в основном автоматизированы для веб-сервера Apache. Однако, несмотря на программное обеспечение вашего веб-сервера, некоторые шаги необходимо выполнить вручную, а сертификаты необходимо установить вручную, особенно если содержимое вашего веб-сайта обслуживается демоном Nginx.

Из этого руководства вы узнаете, как установить программное обеспечение Let's Encrypt на Ubuntu или Debian, сгенерировать и получить бесплатный сертификат для вашего домена, а также узнать, как вы можете вручную установить сертификат на веб-серверах Apache и Nginx.

Требования

  1. Общедоступное зарегистрированное доменное имя с действительными записями A, указывающими на внешний IP-адрес вашего сервера. Если ваш сервер находится за брандмауэром, примите необходимые меры, чтобы обеспечить общедоступный доступ к вашему серверу из Интернета, добавив правила переадресации портов на стороне маршрутизатора.
  2. Веб-сервер Apache установлен с включенным модулем SSL и виртуальным хостингом, если вы размещаете несколько доменов или поддоменов.

Шаг 1. Установите Apache и включите модуль SSL

1. Если на вашем компьютере еще не установлен веб-сервер Apache, введите следующую команду, чтобы установить демон Apache.

sudo apt-get install apache2

2. Активация модуля SSL для веб-сервера Apache в Ubuntu или Debian довольно проста. Включите модуль SSL и активируйте виртуальный хост SSL Apache по умолчанию, выполнив следующие команды:

sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service

Теперь посетители могут получить доступ к вашему доменному имени через протокол HTTPS. Однако, поскольку самозаверяющий сертификат вашего сервера не выдан доверенным центром сертификации, в его браузерах будет отображаться предупреждение об ошибке, как показано на изображении ниже.

https://yourdomain.com

Шаг 2. Установите бесплатный клиент Let’s Encrypt

3. Чтобы установить программное обеспечение Let’s Encrypt на свой сервер, в вашей системе должен быть установлен пакет git. Введите следующую команду, чтобы установить программное обеспечение git:

sudo apt-get -y install git

4. Затем выберите каталог в вашей системной иерархии, в который вы хотите клонировать репозиторий Let’s Encrypt git. В этом уроке мы будем использовать каталог /usr/local/ в качестве пути установки Let’s Encrypt.

Перейдите в каталог /usr/local и установите клиент letencrypt, выполнив следующие команды:

cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt

Шаг 4. Создайте сертификат SSL для Apache

5. Процесс получения SSL-сертификата для Apache автоматизирован благодаря плагину Apache. Создайте сертификат, введя следующую команду для вашего доменного имени. Укажите свое доменное имя в качестве параметра флага -d.

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld

Например, если вам нужен сертификат для работы с несколькими доменами или поддоменами, добавьте их все, используя флаг -d для каждой дополнительной допустимой записи DNS после имени базового домена.

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. Согласитесь с лицензией, введите адрес электронной почты для восстановления и выберите, смогут ли клиенты просматривать ваш домен, используя оба протокола HTTP (защищенный и небезопасный), или перенаправлять все незащищенные запросы на HTTPS.

7. После успешного завершения процесса установки на вашей консоли отобразится поздравительное сообщение, информирующее вас о дате истечения срока действия и о том, как вы можете протестировать конфигурацию, как показано на снимках экрана ниже.

Теперь вы сможете найти файлы сертификатов в каталоге /etc/letsencrypt/live с помощью простого списка каталогов.

sudo ls /etc/letsencrypt/live

8. Наконец, чтобы проверить статус вашего SSL-сертификата, перейдите по следующей ссылке. Замените доменное имя соответствующим образом.

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

Кроме того, посетители теперь могут получить доступ к вашему доменному имени по протоколу HTTPS без каких-либо ошибок в своих веб-браузерах.

Шаг 4. Автоматическое продление позволяет зашифровать сертификаты

9. По умолчанию сертификаты, выданные центром Let’s Encrypt, действительны в течение 90 дней. Чтобы продлить сертификат до истечения срока его действия, вам необходимо снова вручную запустить клиент, используя те же флаги и параметры, что и раньше.

sudo ./letsencrypt-auto --apache -d your_domain.tld

Или в случае нескольких поддоменов:

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. Процесс продления сертификата можно автоматизировать, чтобы он запускался менее чем за 30 дней до истечения срока действия, с помощью демона расписания Linux cron.

sudo crontab -e

Добавьте следующую команду в конец файла crontab, используя только одну строку:

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. Подробную информацию о файле конфигурации вашего домена продления для программного обеспечения Let’s Encrypt можно найти в каталоге /etc/letsencrypt/renewal/.

cat /etc/letsencrypt/renewal/caeszar.tk.conf

Вам также следует проверить файл /etc/letsencrypt/options-ssl-apache.conf, чтобы просмотреть новый файл конфигурации SSL для веб-сервера Apache.

12. Кроме того, плагин Let’s Encrypt Apache изменяет некоторые файлы в конфигурации вашего веб-сервера. Чтобы проверить, какие файлы были изменены, перечислите содержимое каталога /etc/apache2/sites-enabled.

ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

На данный момент это все! В следующей серии руководств мы обсудим, как получить и установить сертификат Let's Encrypt для веб-сервера Nginx в Ubuntu и Debian<., а также в CentOS.