Генерация SSL сертификата с Let’s Encrypt

В этой статье я расскажу как с помощью VM-Bitrix установить сертификат на сайт и что делать, если сертификат не хочет устанавливаться.

Что такое Let’s Encrypt

Let’s Encrypt – это некоммерческий проект, который позволяет выпускать бесплатные сертификаты со сроком использования – 90 дней. А в VM-Bitrix используется средство, которое по истечении этого срока в автоматическом режиме обновляет сертификат сайта.

Как создать сертификат

Сертификат с помощью VM-Bitrix создается очень просто. Приведу ниже инструкцию в виде галереи, просто листайте картинки.1 из 4

Выбираем 8. Manage pool web servers

Пройдемся по настройкам:

Enter site name – вводим название сайта, который нуждается в SSL сертификате

Enter DNS name – вводим DNS имена

Внимание! По всем введенным DNS именам должен открываться ваш сайта, иначе сертификат не будет получен.

Enter email – вводим любой, на него будут приходить уведомления о продлении сертификата

Проверка установки сертификата

Обязательно проверьте результат установки сертификата1 из 2

Выбираем 10. Background poll tasks

Если увидели finished – значит сертификат успешно установлен и внедрен в конфигурацию сервера. Открываем браузер в анонимном режиме, запускаем сайт и проверяем сертификат.1 из 3

Если видим значок замка, значит сертификат все хорошо. В подробнее можно ознакомится с сертификатом

Если по какой-то причине в браузере сайт ругается на отсутствие сертификата – попробуйте перезагрузить nginx в консоле сервера с помощью команды service nginx restart

В противном случае

Если на этапе установки увидели статус error, то идем смотреть логи по пути /home/bitrix/dehydrated_update.log и разбираться в чем проблема

Просматривать логи особенно удобно с помощью программы «mc», так что рекомендую поставить. Если у вас centos, то это делается с помощью консольной команды «yum install mc»

Ошибка в логах пишется прямым текстом, примера у меня нет, поэтому сразу перейду к рассказу о том, какие бывают ошибки.

Частые причины ошибки

  • Сайт недоступен из внешней стороны

Что делать: проверить доступность сайта с анонимной вкладки или другого устройства, возможно в .htaccess задано ограничение, например http-авторизация

  • Не привязано доменное имя

Что делать: проверьте A записи домена в панеле управления доменного имени

  • Введен недопустимый DNS или он введет не на текущий сайт

Что делать: проверьте открытие сайта с тех DNS, которые вводили на этапе установки. Сайт должен открываться по ним. Например, www.test.ru, test.ru

  • Неправильные настройки конфигурации сервера

Что делать: загляните в конфигурацию nginx на наличие установленных директив подключения сертификата

  • Слишком много запросов к сервису Let’s Encrypt

Что делать: у сервиса есть ограничение на количество запросов. Если случилась эта ошибка, попробуйте на следующий день повторить процедуру

Как сгенерировать SSL на сайт другой платформы

Если у вас сайт не на Битриксе, а допустим какой-нибудь WordPress, то вы, скорее всего, не сможете создать для него сертификат через VM-Bitrix. Но можно схитрить:

  • В папке /home/bitrix/dehydrated/domains/ создаем текстовый файл с названием вашего домена. Например, test.web-masterok.ga.txt
  • В созданный файл добавляем название доменного имени test.web-masterok.ga
Просто вносим название сайта
Просто вносим название сайта

И теперь запускаем файл /home/bitrix/dehydrated/dehydrated с ключом -c.

Так происходит проверка на валидность. В случае добавления, произойдет запрос сертификата для добавленного сайта
Так происходит проверка на валидность. В случае добавления, произойдет запрос сертификата для добавленного сайта

Механизм пройдет по всем существующим сертификатам и проверит их на валидность. Для нового запросит сертификат.

Все созданные сертификаты помещаются в папку /home/bitrix/dehydrated/certs/ – там будет лежать и новый сертификат.

Остается только подключить сертификат в конфигурации nginx по пути /etc/nginx/bx/site_avaliable/bx_ext_ssl_test.web-masterok.ga в пределах директивы server:

include bx/conf/ssl_option.conf;

ssl_certificate /home/bitrix/dehydrated/certs/test.web-masterok.ga/fullchain.pem;

ssl_certificate_key /home/bitrix/dehydrated/certs/test.web-masterok.ga/privkey.pem;

ssl_trusted_certificate /home/bitrix/dehydrated/certs/test.web-masterok.ga/chain.pem;

Вот как-то так в пределах директивы server
Вот как-то так в пределах директивы server

Затем проверяем с помощью консольной команды sudo nginx -t корректность внесенных правок в конфигурацию. Если все хорошо, перезагружаем nginx. Сертификат должен подключится.

Заключение

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