Презрения достоин высокий ум, примененный для низких целей (Б. Грасиан).

Безопасный Apache с Let’s Encrypt на CentOS 7

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
10 сентября 2018
Безопасный Apache с Let's Encrypt на CentOS 7

Просмотров: 128

Let’s Encrypt – бесплатный, автоматизированный и открытый центр сертификации, разработанный Исследовательской группой Internet Security Research Group (ISRG). Сертификаты, выданные Let’s Encrypt, действительны в течение 90 дней с даты выпуска, и сегодня им доверяют почти все браузеры.

В этой статье мы рассмотрим шаги, необходимые для установки бесплатного SSL-сертификата для шифрования SSL на сервере CentOS 7 с Apache в качестве веб-сервера. Мы будем использовать утилиту certbot для получения и обновления сертификатов Let’s Encrypt.

Перед продолжением этой статьи, убедитесь, что вы выполнили следующие предварительные условия:

  • Укажите имя домена, указывающий на ваш IP-адрес общего сервера. В этой статье мы будем использовать домен andreyex.ru.
  • Установленный Apache и запущен на сервере.
  • Виртуальный хост Apache для своего домена.
  • Открытые порты 80 и 443 в своем брандмауэре.

Установите следующие пакеты, которые необходимы для SSL-зашифрованного веб-сервера:

 

Certbot – это инструмент, упрощающий процесс получения SSL-сертификатов от Let’s Encrypt и автоматического включения HTTPS на вашем сервере.

Пакет certbot предоставляется EPEL. Если репозиторий EPEL не установлен в вашей системе, вы можете установить его, используя следующую команду:

 

После того, как репозиторий EPEL включен, установите пакет certbot, введя:

 

Обмен ключами Diffie-Hellman (DH) – это метод безопасного обмена криптографическими ключами по необеспеченному каналу связи. Создайте новый набор параметров 2048 бит DH для усиления безопасности:

 

Вы можете изменить размер до 4096 бит, но в этом случае генерация может занять более 30 минут в зависимости от энтропии системы.

Чтобы получить сертификат SSL для нашего домена, мы собираемся использовать плагин Apache, который работает, создавая временный файл для запрашиваемого домена в каталоге,${webroot-path}/.well-known/acme-challenge, а сервер проверки подлинности Let’s Encrypt делает HTTP-запросы для проверки DNS для запрашиваемого домена разрешение на сервер, на котором выполняется certbot.

Чтобы сделать его более простым, мы собираем все HTTP-запросы для .well-known/acme-challenge в одном каталоге /var/lib/letsencrypt. Следующие команды создадут каталог и сделают его доступным для записи на сервере Apache.

Следующие команды создадут каталог и сделают его доступным для записи на сервере Apache.

 

Чтобы избежать дублирования кода, создайте следующие два фрагмента конфигурации:

/etc/httpd/conf.d/letsencrypt.conf
 

/etc/httpd/conf.d/ssl-params.conf
 

В приведенном выше фрагменте используются чипперы, рекомендованные Cipherli.st, позволяющие сшивание OCSP, строгая транспортная безопасность HTTP (HSTS) и использование нескольких HTTP-заголовков, ориентированных на безопасность.

Перезагрузите конфигурацию Apache, чтобы изменения вступили в силу:

 

Теперь мы можем запустить средство Certbot с помощью плагина webroot и получить файлы SSL сертификатов, набрав:

 

Если сертификат SSL будет успешно получен, certbot напечатает следующее сообщение:

 

CentOS 7 поставляется с Apache версии 2.4.6, которая не включает директиву SSLOpenSSLConfCmd. Эта директива доступна только на Apache позже 2.4.8 и используется для настройки параметров OpenSSL, таких как обмен ключами Diffie-Hellman (DH).

Нам нужно будет создать новый комбинированный файл, используя SSL-сертификат Let’s Encrypt и созданный файл DH. Для этого введите:

 

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

/etc/httpd/conf.d/andreyex.ru.conf
 

С приведенной выше конфигурацией мы устанавливаем HTTPS и перенаправляем с www на не-www-версию. Не стесняйтесь настраивать конфигурацию в соответствии с вашими потребностями.

Перезапустите службу Apache, чтобы изменения вступили в силу:

 

Теперь вы можете открыть свой веб-сайт, https:// и вы заметите значок зеленого замка.

Если вы протестируете свой домен с помощью теста SSL Labs Server, вы получите оценку A +, как показано ниже:

Безопасный Apache с Let's Encrypt на CentOS 7

Сертификаты Encrypt действительны в течение 90 дней. Чтобы автоматически продлить срок действия сертификатов до истечения срока их действия, мы создадим cronjob, который будет работать два раза в день и автоматически обновит сертификат за 30 дней до истечения срока его действия.

Запустите команду crontab для создания нового cronjob, который обновит сертификат, создаст новый комбинированный файл, включая ключ DH, и перезапустит apache:

 

 

Чтобы протестировать процесс обновления, вы можете использовать переключатель --dry-run в certbot:

 

Если ошибок нет, это означает, что процесс обновления был успешным.

В этой статье вы использовали клиент Let’s Encrypt, certbot для загрузки сертификатов SSL для вашего домена. Вы также создали фрагменты Apache, чтобы избежать дублирования кода и настроите Apache для использования сертификатов. В конце статьи вы создали cronjob для автоматического обновления сертификата.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

ПОИГРАЙ, РАССЛАБЬСЯ

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close