Все, кто худо бедно связан с веб разработкой, знакомы с сервисом 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 сертификаты хоть каждый день.