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

Вступление

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

Предпосылки

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

  • Один сервер 16.04 с некорневым пользователем sudo и брандмауэром, который можно настроить, следуя нашим https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [ Руководство по первоначальной настройке сервера Ubuntu 16.04]

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

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

[[step-1---installing-the-let’s-encrypt-client]] === Шаг 1 - Установка клиента Let Encrypt

Сертификаты Let Encrypt извлекаются через клиентское программное обеспечение, работающее на вашем сервере. Официальный клиент называется Certbot, и его разработчики поддерживают собственный репозиторий программного обеспечения Ubuntu с последними версиями. Поскольку 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 автоматически получит и установит новый сертификат SSL, действительный для доменов, указанных в качестве параметров.

Следующая команда принимает список имен доменов через запятую в качестве параметров после флага + -d +. Первое имя домена в списке - это базовый домен, используемый Certbot для создания сертификата. По этой причине мы рекомендуем сначала передать пустое доменное имя верхнего уровня, а затем любые дополнительные субдомены или псевдонимы.

Запустите интерактивную установку для ++ для создания связанного сертификата для этого домена:

sudo certbot --apache -d

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

Когда установка будет завершена, вы сможете найти сгенерированные файлы сертификатов в + / etc / letsencrypt / live +. Вы можете проверить статус вашего SSL-сертификата по адресу + https: //www.ssllabs.com/ssltest/analyze.html? D = & latest +, и теперь вы можете получить доступ к своему веб-сайту с помощью префикса + https +. Не забудьте повторить этот шаг снова для каждого домена, который вы используете.

Шаг 3 - Проверка автоматического продления Certbot

Сертификаты Let Encrypt действительны только в течение 90 дней. Тем не менее, пакет certbot, который мы установили, позаботится об этом, выполняя + certbot renew + 'два раза в день через системный таймер. В несистемных дистрибутивах эта функциональность обеспечивается скриптом cron, помещенным в `+ / etc / cron.d +. Задание выполняется два раза в день и обновляет любой сертификат, срок действия которого истекает в течение тридцати дней.

Чтобы проверить процесс обновления, вы можете выполнить пробный прогон с помощью + certbot +:

sudo certbot renew --dry-run

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

Заключение

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

Related