Прикручиваем бесплатный SSL-сертификат от Let’s Encrypts к «Битрикс: Веб-окружение»

Продолжаем разбираться с «Битрикс: Веб-окружение». В прошлой статье разобрались, с установкой и настройкой. В этой расскажу, как получить и привязать бесплатный SSL-сертификат от Let’s Encrypt в «Битрикс: Веб-окружение».

Получаем бесплатный SSL-сертификат

Для управления выдаваемыми сертификатами у Let’s Encrypt есть специальное решение под названием certbot. Подробную документацию можете найти на официальном сайте, а я просто покажу рабочую схему.
Первым делом:

И ставим, собственно, сам certbot.

На этом подготовительный этап завершен.
Теперь собственно попросим выдать нам сертификат. Следующий момент, метод который я использую подразумевает, что будет использован собственный механизм от Let’s Encrypt, который работает через 443 порт, на котором у нас висит nginx. Способов обхода масса, самый простой остановить nginx, получить сертификат и запустить заново.

Запрашиваем сертификат. yourdomain.ru замените на ваш домен.

Ответив на несколько простых вопросов вы получите сообщение об успехе.

Бесплатный SSL-сертификат успешно сформирован

Сертификат успешно сформирован


Вот и все, наши сертификаты готовы. Находятся они в /etc/letsencrypt/live/yourdomain.ru/

Добавляем SSL-сертификаты к Битрикс

Дело за малым, осталось привязать сертификаты к нашему сайту. Если у вас один сайт в веб-окружении, то нам понадобится файл /etc/nginx/bx/conf/ssl.conf. Открываем файл, находим строки:

Меняем пути на наши сертификаты.

Если у вас несколько сайтов, то делаем следующие шаги.
Сначала создадим конфиг под сайт.

Именно в нем указываем пути к нашим сертификатам, так же как описано выше.
Затем находим файл /etc/nginx/bx/site_avaliable/bx_ext_ssl_yourdomain.ru.conf и в нем меняем:

на

Сохраняем файл и перезапускаем nginx.

Перейдите на https://yourdomain.ru и убедитесь, что все работает.
Далее в меню веб-окружения перейдите 6. Manage sites in the pool, 5. Change https settings on site. Выберите ваш домен и отключите доступ по http.

Отключаем доступ по http

Отключаем доступ по http


Все, теперь ваш сайт работает по https и заметьте, совершенно бесплатно.

Настраиваем автоматическое продление сертификата

Естественно, что бесплатный SSL-сертификат не может быть идеальным. Срок действия сертификатов от Let’s Encrypt 90 дней, против года для платных. К счастью, это не такая уж и большая проблема. Стандартными механизмами предусмотрено автоматическое продление. Для этого надо выполнить команду:

После этого, все сертификаты которые истекают в ближайшие 30 дней будут обновлены. Есть следующая особенность, для обновления используется тот же механизм, что и для получения. В нашем случае это --standalone режим, который требует отключения nginx, для работы по 443 порту. Но и это предусмотрено — для certbot можно указать параметры --pre-hook и --post-hook, которые выполнят системные команды перед и после работы certbot. Таким образом наша строка обновления сертификатов приобретает следующий вид:

Запустите с указанием дополнительного параметра --dry-run (прогонит процесс в холостую) и убедитесь, что ошибок нет.

Если все отлично, то добавим задание в cron, которое, скажем, раз в сутки в 2:16 (время сами выберите) ночи будет проверять и при необходимости обновлять наши сертификаты:

и добавляем задание

Один комментарий
  • Артем

    Вот за такую статью не лень и зарегистрирооваться чтобы сказать: спасибо!

    Ответить
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *