На момент написания статьи получение сертификата заканчивалось ошибкой.
В интернете есть статьи о том, как обойти эту и другие ошибки, но мы пойдем дальше. Я не люблю то, что не работает из коробки, поэтому в этой статье будет рассмотрено получение SSL сертификата LetsEncrypt для vm bitrix через certbot автоматически, с авто обновлением т.к. этот способ я считаю оптимальным.
Что делать, если SSL сертификата LetsEncrypt не устанавливается на vm bitrix?
Шаг 1. Установка certbot на cento7 (если у вас дпугая система, то подробную инструкцию можно получить по ссылке)Подготовка к установке certbot.
yum -y install yum-utils
sudo yum install certbot python2-certbot-nginx
И собственно сама установка certbot
yum install certbot
Далее получаем сертификат
sudo certbot certonly --nginx
нам предложат выбрать сайт для которого мы хотим получить сертификат.
Нужно указать цифру соответствующую нужному сайту или несколько цифр через запятую, если получаем сертификат для домена и его поддоменов.
Если все прошло успешно, то вы увидите примерно следующее:
Обратите внимание на выделенные строки - это и есть ваши SSL сертификаты от LetsEncrypt, точнее пути их сохранения. Скопируйте эти пути, они нам еще понадобятся для подключения к bitrix env.
Уточнение: если не удалось получить сертификаты командой (
sudo certbot certonly --nginx
) или такой способ вам по каким-то причинам не подходит, то можно заменить эту команду на (certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com
) где - -
w /var/www/example/
- - путь к корневой папке вашего домена-d www.example.com
- доменное имя для которого получаете сертификат, обратите внимание, что можно указать несколько доменных имен.Дальше действия аналогичные приведенной статье
Добавляем SSL сертификаты LetsEncrypt в BitrixEnv
Скопируем конфигурацию (Вместо .yourdomain.ru можно написать что угодно, но я советую указать домен того сайта для которого вы получили сертификаты)cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/ssl.yourdomain.ru.conf
Затем редактируем файл
/etc/nginx/bx/conf/ssl.yourdomain.ru.conf
и указываем расположение
privkey.pem
(приватный ключ домена) и fullchain.pem
(публичный сертификат домена) в директивах nginx ssl_certificate_key
и ssl_certificate
соответственно.Далее открываем файл
/etc/nginx/bx/site_avaliable/bx_ext_ssl_yourdomain.ru.bx.conf
Находим в нем строку
include bx/conf/ssl.conf;
и заменяем на include bx/conf/ssl.yourdomain.ru.conf;
На этом все. Осталось проверить все ли верно мы написали (верна ли конфигурация nginx)
nginx -t
И если все ок и нет никаких предупреждений, то перезагружаем nginx
service nginx restart
с этого момента у вас уже будет установленный сертификат SSL от LetsEncrypt, но согласитесь не хочется раз в 3 месяца (именно столько живет ssl сертификат от LetsEncrypt) обновлять сертификат в ручном режиме.
Как настроить автоматическое обновление SSL сертификата LetsEncrypt для bitrixEnv?
Автоматическое обновление сертификата настраивается очень просто нкжно в консоли вставить командуecho "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null
Это добавление крон задачи на автоматическое обновление сертификатов.
Или если вы не вставили эту команду, а сертификаты истекли, то можно обновить все сертификаты, которые в этом нуждаются командой
certbot renew
Все ранее установленные сертификаты обновятся автоматически.
Надеюсь, что статья помогла вам.