Let’s encrypt — это центр сертификации, который предназначен для автоматического получения и обновления SSL-сертификатов.

Для получения сертификата на домен запрашивающая сторона обязана подтвердить своё право собственности на него. Подтверждение работает следующий образом: на сервер, обслуживающий веб-сайт домена, устанавливается приложение certbot, которое при запуске с заданными параметрами скачивает с сервера Let’s encrypt некий файл. Программа-бот создаёт в директории веб-сервера папку .well-khown, в которую кладёт этот скачанный файл.

На втором этапе подтверждения сервер Let’s encrypt скачивает тот самый файл с сервера проверяемого домена. Если файл доступен, let’s encrypt сверяет его имя и содержимое с собственным файлом. В случае успеха сервер отправляет боту сертификаты (3 шт.) и файл с приватным ключом. Подробное описание всех этих артефактов можно найти здесь.

Конечная настройка сертификатов для DataArmor будет описана ниже. Итак, войдите в консоль сервера вашего веб-сайта, установите приложение certbot. Конкретные инструкции по установке можно найти на официальном сайте: https://certbot.eff.org/

Выберите ваш веб-сервер и ОС, под управлением которой работает ваш веб-сайт. Для таких популярных веб-серверов, как Apache и Nginx, существуют специальные плагины, облегчающие процесс установки и позволяющие выполнить этот процесс в интерактивном режиме. Нам не удалось получить сертификаты с помощью плагинов, поэтому рекомендуем пользоваться webroot-методом. Он описан в онлайн-инструкции.

При подготовке этой инструкции на виртуальную машину Azure был установлен сервер Apache с виртуальным хостом, на который certbot помещал проверочный файл. Далее, командой sudo certbot certonly --webroot -w /etc/httpd/www -d ineedcertfromletsencrypt.tk были запрошены и получены сертификаты для домена ineedcertfromletsencrypt.tk. Это бесплатный домен, зарегистрированный для создания этой инструкции. В вышеприведённой команде /etc/httpd/www — это путь к директории виртуального хоста.

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

  1. Веб-сервер должен прослушивать порты 80 и 443.
  2. Доступ к содержимому хоста должен быть открыт. Это означает возможность обратиться по URL формата http://domainname.com/.wellknown/checkfile, где domainname — имя домена, для которого необходимо получить сертификат, checkfile — условное имя файла проверки.
  3. Certbot должен иметь права на запись и чтение директории /.well-known, а также создание в директории нужных ему поддиректорий (.well-known в частности).

Если все условия для получения сертификатов были выполнены и процесс прошёл успешно, то вы найдёте их в директории /etc/letsencrypt/archive/, где — это имя вашего домена.

Важное замечание: при попытке получить сертификат для поддомена вы можете потерпеть неудачу т.к. Let’s encrypt смотрит домен верхнего уровня. Так, мы пытались получить сертификат для домена letsencrypt.westus.cloudapp.azure.com, но сервис Let’s encrypt ответил, что для домена azure.com превышен лимит сертификатов. В качестве решения мы зарегистрировали бесплатный домен ineedcertfromletsencrypt.tk с перенаправлением на letsencrypt.westus.cloudapp.azure.com

Комментарии