Вступление
Сертификаты 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.