Поднимаем SSL за 5 минут

Если вы когда-нибудь пробовали настроить SSL на сервере, то я думаю, вы знаете, что это занятие не из приятных и требует много внимания, сил и что самое главное времени. На днях мне пришлось столкнуться с этой задачкой на клиентском VPS, и я решил ее очень простым способом, о котором вы сможете прочитать далее в моем посте…

Перед началом работы

Для начала скажу, что для решения задачи я использовал Let’s Encrypt. Если описывать несколькими словами, то Let’s Encrypt упрощает процесс установки SSL-сертификатов и позволяет создать бесплатный SSL сертификат прямо на вашем сайте за несколько минут.

Если вдаваться в подробности,  то Let’s Encrypt по своей сути — это некоммерческий проект, предоставляющая бесплатный, открытый и автоматизированный  CA (certificate authority — центр сертификации), созданный ISRG на благо всего общества:

  1. Бесплатно: владелец любого домена может воспользоваться Let’s Encrypt и получить доверенный TLS-сертификат (TLS — наследник SSL) совершенно бесплатно;
  2. Автоматизированно: Let’s Encrypt предоставляет бесплатное и свободное программное обеспечение, которое, будучи настроенным на сервере, может полностью автоматически запрашивать предоставляемые сертификаты Let’s Encrypt,  и автоматически конфигурировать/обновлять их;
  3. Безопасно: Let’s Encrypt строится как платформа для продвижения лучших практик безопасности TLS как на стороне центра сертификации (CA), так и на стороне сайтов, помогая администраторам правильно настраивать серверы;
  4. Прозрачно: информация о выпуске и отзыве каждого сертификата Let’s Encrypt доступна публично так, что любой желающий  сможет изучить её;
  5. Свободно: протоколы взаимодействия со CA, позволяющие автоматизировать процессы выпуска и обновления сертификатов, будут опубликованы как открытый стандарт для максимального внедрения;
  6. Кооперативно: как и любой протокол, лежащий в основе Интернета и WWW в целом, Let’s Encrypt является совместным, неподконтрольным какой-либо конкретной организации некоммерческим проектом созданным исключительно для того, чтобы принести пользу обществу.

Список выше я взял с официального сайта Let’s Encrypt, остальную краткую информацию я думаю вы сможете успешно «нагуглить».

Установка Let’s Encrypt

Библиотека Let’s Encrypt устанавливается через Git, а это значит, что для начала Git нужно установить на сервере в первую очередь. Поэтому в консоли пишем следующее:

После этого клонируем и устанавливаем Let`s Encrypt:

Обратите внимание, что я копирую в директорию /opt/letsencrypt вы же можете копировать куда вам угодно, однако я советую копировать по такому же пути, ибо этот же путь обычно используется сторонними программными продуктами Ubuntu.

Установка SSL-сертификата

Для установки переходим в директорию, где лежит Let’s Encrypt и запускаем установщик:

Для нескольких доменов или поддоменов выполните следующее:

На этом все. Let’s Encrypt прогонит вас по установке, сгенерирует SSL файлы и настоит веб-сервер Apache.

Автопродление сертификатов

Let’s Encrypt SSL сертификаты действительны только в течении 90 дней (примерно 3 месяца) и по завершению этого срока, они истекают и должны быть продлены. К счастью есть волшебная команда, которая решает эту проблему. Команда будет проверять все сертификаты, которые установлены в системе и возобновлять те, которые истекают менее чем за 30 дней. Команда приведена ниже:

Также можно настроить обновление в определенные промежутки времени. Например, чтобы выполнять обновление каждый понедельник в 2 часа ночи придется написать следующее:

И далее добавьте следующую команду:

Как работает Let’s Encrypt под капотом

На самом деле Let’s Encrypt выполняет достаточно много команд, так, что вы это даже не замечаете и не подозреваете как он работает. Если все, что делает Let’s Encrypt, делать вручную, то этот процесс будет примерно выглядеть как описано ниже.

Активируем модуль Apache SSL и перезапускаем сервер:

Создаем директорию, где вы будете хранить файлы SSL-сертификатов:

Генерируем ключ и сертификат с OpenSSL:

После создания всех файлов необходимо настроить Apache, на использование SSL-сертификатов. Для этого нужно создать конфигурационный файл:

и вставить следующий код:

 Активируем конфигурацию и перезапускаем Apache:

На этом все, надеюсь мой пост кому-нибудь когда-то поможет.

Подписаться на новые статьи