Как настроить сертификаты Let Encrypt для нескольких виртуальных хостов Apache в Ubuntu 14.04

Вступление

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

Из этого туториала Вы узнаете, как настроить сертификаты TLS / SSL на Let’s Encrypt для защиты нескольких виртуальных хостов на Apache на сервере Ubuntu 14.04.

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

Предпосылки

Для завершения этого руководства вам понадобится:

  • Сервер Ubuntu 14.04 с некорневым пользователем sudo, который вы можете настроить, следуя нашему Initial Server Настройка руководство

  • Функциональный веб-сервер установки Apache, на котором размещены multiple виртуальные хосты

Важно, чтобы каждый виртуальный хост был настроен в отдельном файле конфигурации, и к нему можно было получить внешний доступ через браузер. Подробное руководство о том, как правильно настроить виртуальные хосты Apache в Ubuntu, можно найти по адресу https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16. -04 [эта ссылка].

Для целей данного руководства мы установим сертификаты Let Encrypt для доменов + example.com + и + test.com +. На них будут ссылаться в руководстве, но вы должны заменить их своими доменами, следуя далее.

Когда вы будете готовы двигаться дальше, войдите на свой сервер, используя свою учетную запись sudo.

[[step-1---download-the-let’s-encrypt-client]] === Шаг 1 - Загрузите клиент Let Encrypt

Первым шагом к использованию Let Encrypt для получения SSL-сертификата является установка программного обеспечения `+ certbot + 'на ваш сервер. Разработчики Certbot поддерживают свой собственный репозиторий программного обеспечения Ubuntu с последними версиями программного обеспечения. Поскольку Certbot находится в такой активной разработке, стоит использовать этот репозиторий для установки более нового Certbot, чем предусмотрено Ubuntu.

Сначала добавьте репозиторий:

sudo add-apt-repository ppa:certbot/certbot

Вам нужно нажать + ENTER, чтобы принять. После этого обновите список пакетов, чтобы получить информацию о пакете нового репозитория:

sudo apt-get update

И наконец, установите Certbot из нового репозитория с помощью + apt-get:

sudo apt-get install python-certbot-apache

Клиент + certbot + Let’s Encrypt готов к использованию.

Шаг 2 - Настройка сертификатов

Генерирование SSL-сертификата для Apache с использованием клиента + certbot + Let Let Encrypt довольно просто. Клиент автоматически получит и установит новый сертификат SSL, действительный для доменов, указанных в качестве параметров.

Хотя можно связать несколько сертификатов Let Encrypt вместе, даже если доменные имена разные, рекомендуется создавать отдельные сертификаты для уникальных доменных имен. Как правило, только субдомены определенного домена должны быть связаны вместе.

Генерация первого SSL-сертификата

Мы начнем с настройки SSL-сертификата для первого виртуального хоста + example.com +.

Мы выполним интерактивную установку и получим связанный сертификат, действительный для домена и субдомена, а именно + example.com + в качестве базового домена и + www.example.com + в качестве субдомена. Вы можете включить любые дополнительные субдомены, которые в настоящее время настроены в вашей настройке Apache, в качестве виртуальных хостов или псевдонимов.

Запустите команду + certbot + с:

sudo certbot --apache -d  -d

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

Для этого примера домен * base * будет + example.com +.

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

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

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

Теперь вы сможете получить доступ к своему веб-сайту с помощью префикса + https +.

Генерация второго SSL-сертификата

Генерирование сертификатов для ваших дополнительных виртуальных хостов должно происходить так же, как описано в предыдущем шаге.

Повторите команду установки сертификата, теперь со вторым виртуальным хостом, который вы хотите защитить с помощью Let’s Encrypt:

sudo certbot --apache -d  -d

Для этого примера домен * base * будет + test.com +.

Опять же, вы можете проверить статус вашего SSL-сертификата по следующей ссылке (не забудьте заменить ее своим * базовым * доменом):

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

Если вы хотите сгенерировать сертификаты для дополнительных виртуальных хостов, просто повторите процесс и не забудьте использовать пустой домен верхнего уровня в качестве * базового * домена.

Шаг 3 - Настройте автоматическое продление

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

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

sudo crontab -e

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

кронтаб

. . .
15 3 * * * /usr/bin/certbot renew --quiet

+15 3 * * * + в этой строке означает «запускать следующую команду в 3:15 каждый день». Вы можете выбрать в любое время.

Команда + renew + для Certbot проверит все сертификаты, установленные в системе, и обновит все сертификаты, срок действия которых истекает менее чем за тридцать дней. + - quiet + говорит Certbot не выводить информацию и не ждать ввода пользователя.

+ cron + теперь будет запускать эту команду ежедневно. Поскольку мы установили наши сертификаты с помощью плагина + - apache +, Apache также будет перезагружен, чтобы гарантировать использование новых сертификатов.

Заключение

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

Related