Генерация 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;
Затем проверяем с помощью консольной команды sudo nginx -t корректность внесенных правок в конфигурацию. Если все хорошо, перезагружаем nginx. Сертификат должен подключится.
Заключение
Вот так вы можете подключить на свой сайт бесплатный SSL, который по истечению срока будет обновлен. В ближайшее время я опубликую статью, где расскажу как установить свой собственный сертификат и перевести сайт на https.