Как получить ключи Let’s Encrypt для хостинга

Все, кто худо бедно связан с веб разработкой, знакомы с сервисом Let’s Encrypt. Сервис создан Internet Security Research Group для помощи разработчикам веб приложений и предоставляет бесплатные SSL сертификаты на три месяца. Чтобы автоматизировать процесс выдачи сертификатов написали скрипты, назвали их certbot и выложили на GitHub.

И все бы ничего, но не все «умеют» пользоваться certbot. Я частенько слышу, что бот не будет работать, если у тебя нет доступа к консоли хостинга. Или «хостер – зараза» не дает возможность установить certbot на сервер и использовать SSL сертификаты от Let’s Encrypt.

Глупцы. Привыкли к вариантам «все работает из коробки». Прочитали пару «инструкций» для чайников, которые выдал Гугл и лапки опустили. В лоб, по тупой инструкции не получается запустить – значит не работает.

Все те, кто стонет, банально не удосужились прочитать мануал certbot. Ведь для работы certbot и выпуска сертификатов ничего не мешает. Самое главное, чтобы домен был зарегистрирован и к нему был доступ по 80 порту. Все! Дальше, конечно, надо немного и ручками поработать.

Теперь по порядку.

Ставим на любой компьютер, хоть Windows с WSL из «любимого» репозитария certbot. Заходим в консоль и запускаем команду:

certbot certonly --manual -m <name@example.com> -d <FQDN>

Где говорим боту, что выпускаем только сертификат, в ручном режиме. Дополнительно указываем электронный почтовый адрес (хотя можно обойтись без него, он в сертификате не фигурирует) и домен, для которого нужен SSL сертификат.

Во время работы certbot будет запрос на создание в руте веб сервера специального каталога /.well-known/acme-challenge/. Каталог будет содержать файл, имя которого состоит из набора случайных символов. По типу: HGr8U1IeTW4kY_Z6UIyaakzOkyQgPr_7ArlLgtZE8SX

Содержимое файла должно содержать аналогичный набор символов. Все символы создаются автоматически, во время исполнения скрипта certbot. Здесь можете не переживать. Скрипт встанет на паузу и будет ждать пока вы все подготовите.

Жмем продолжить и ждем, когда в каталоге /etc/letsencrypt/live/ появится новый каталог по имени домена с открытым и закрытым ключами. Каталог /.well-known/acme-challenge/ из рута веб сервера можно удалить. Он больше никогда не понадобиться.

В личном кабинете хостера включаете поддержку SSL и вставляете свеженькие сертификаты. Если этого нет – меняйте хостера.

Вот и вся инструкция по созданию в ручном режиме SSL сертификатов для сайтов, где «хостер-козел». Теперь можете выпускать SSL сертификаты хоть каждый день.