Введение

Этот урок покажет вам, как настроить TLS/SSL сертификат от Let's Encrypt под систему Ubuntu 14.04, работающей на веб сервере Apache.

Также мы рассмотрим, как автоматизировать процесс обновления сертификата с помощью cron job.

 

SSL сертификаты используются для шифрования трафика между сервером и клиентом, обеспечивая дополнительную безопасность для пользователей, имеющих доступ к Вашему приложению. Let's Encrypt обеспечит легкий путь получения и установки доверенных сертификатов совершенно бесплатно.

 

Требования

Для того, чтобы следовать нижеизложенным инструкциям Вам потребуется:

  • Сервер на Ubuntu 14.04 с обычной учетной записью (sudo), которую Вы сможете настроить следуя нашему руководству по установке сервера.

  • Установленный Веб-сервер Apache с парой корректно настроенных доменов.

 

Когда будете готовы продолжить, подключитесь к серверу используя Вашу учётную запись (sudo).

 

Шаг 1. Установка модулей

 

Первое, что нам нужно сделать, это обновить кэш диспетчера пакетов:

 

$ sudo apt-get update

 

Далее нам понадобится git для загрузки Let's Encrypt Client. Для установки git , выполните следующую команду:

 

$ sudo apt-get install git

 

Шаг 2. Загрузка Let's Encrypt Client.

 

Далее мы загрузим Let's Encrypt Client с официального хранилища, поместив его файлы в определенном месте на сервере. Это будет сделано для того, чтобы облегчить процесс обновления файлов хранилища, как только новый релиз станет доступным.

 

Поскольку Let's Encrypt Client всё ещё находится в стадии разработки, для исправления ошибок и внедрения новых функциональных возможностей могут потребоваться постоянные обновления.

 

Мы скопируем хранилище Let's Encrypt в директорию /opt, которая является стандартной для размещения стороннего программного обеспечения на системах Unix:

 

$ sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

 

Это создаст локальную копию официального хранилища Let’s Encrypt под / Opt / letsencrypt.

 

Шаг 3. Настройка SSL-сертификата

 

Создание SSL сертификата для Apache с помощью Let’s Encrypt Client довольно простое. Клиент автоматически получит и установит новый SSL сертификат, который действителен для доменов, предоставленных в качестве параметров.

 

Доступ к каталогу letsencrypt:

 

$ cd /opt/letsencrypt

 

Чтобы выполнить он-лайн установку и получить сертификат, который охватывает только один домен, выполните команду letsencrypt-auto с:

 

$ ./letsencrypt-auto --apache -d example.com

 

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

 

$ ./letsencrypt-auto --apache -d example.com -d www.example.com

 

Для этого примера базовый домен будет example.com.

 

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

 

Когда установка будет завершена, вы должны будете найти сгенерированные файлы сертификатов в /etc/letsencrypt/live. Вы можете проверить статус вашего SSL сертификата с помощью следующей ссылки (не забудьте заменить example.com на ваш базовый домен):

 

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

 

Теперь вы можете получить доступ к веб-сайту, используя HTTPS.

 

Шаг 4. Настройка автопродления

 

Сертификаты Let’s Encrypt действительны в течение 90 дней, но рекомендуется продливать срок действия сертификатов каждые 60 дней, чтобы избежать ошибок. Let’s Encrypt имеет команду renew, которая автоматически проверяет установленные сертификаты и пытается возобновить их, если они менее чем за 30 дней от даты истечения срока годности.

 

Чтобы запустить процесс обновления для всех установленных доменов, вы должны выполнить:

 

./letsencrypt-auto renew

 

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

 

Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf

The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

 

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

 

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

 

Давайте отредактируем crontab чтобы создать новый cron, который будет выполнять команду обновления каждую неделю. Для редактирования crontab для пользователя root, выполните следующую команду:

 

$ sudo crontab -e

 

Добавьте следующее содержание, все в одной строке:


30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

 

Сохраните и выйдите. Это создаст новый cron job, который будет выполнять команду letsencrypt-auto renew каждый понедельник в 2:30 утра. Результат, генерируемый командой, будет поступать в лог-файл, расположенный в /var/log/le-renewal.log.

 

Шаг 5. Обновление Let’s Encrypt Client (не обязательно)

 

Всякий раз, когда будут доступны новые обновления для Let’s Encrypt Client, вы можете обновить локальную копию, запустив git pull внутри каталога Let’s Encrypt:

 

$ cd /opt/letsencrypt

$ sudo git pull

Это позволит загрузить все последние изменения в хранилище, обновляя при этом Let’s Encrypt Client.

 

Заключение

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

Помог ли вам данный ответ? 1 Пользователи нашли это полезным (1 голосов)