Чтобы в Bitrix VM установить SSL сертификат от Let’s Encrypt для начала его нужно нам получить. Как получим бесплатный сертификат и установим его не сервер мы сделаем автоматическое задание на его перевыпуск. Для начала нужно установить certbot от Let’s Encrypt для автоматизации процесса получения бесплатных сертификатов а после и для автоматизации перевыпуска. В моём случае я прикручивал бесплатный SSL (для доступа по https) сертификат Let’s Encrypt на виртуальную машину Битрикс 24 (Bitrix VM).
yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
yum install certbot
Для получения сертификата certbot'у нужен будет доступ через 443 порт и для этого мы пока временно потушим работу nginx, так как он занимает этот порт.
systemctl stop nginx
А теперь выпустим сам сертификат. В процессе выпуска нас попросят ввести email и ответить на пару вопросов о соглашении и т. д.
certbot certonly --standalone -d site.ru -d www.site.ru
При успешном выполнении операции вы увидите сообщение наподобие
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mywebsite.com-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mywebsite.com-0001/privkey.pem
Your cert will expire on 2019-02-27. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the “certonly” option. To non-interactively renew all of
your certificates, run “certbot renew”
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.prg/donate
Donating to EFF: https://eff.org/donate-le
Мы получили наши сертификаты и они лежат тут:
/etc/letsencrypt/live/site.ru/
Добавляем SSL-сертификаты в конфиги nginx для Битрикс24
Теперь прикручиваем сертификаты к сайту.
Открываем файл /etc/nginx/bx/conf/ssl.conf и заменяем в нём следующие строки
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.pem;
На пути к нашим новеньким сертификатам:
ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;
После этого необходимо рестартануть наш nginx:
systemctl restart nginx
Теперь можно проверить доступен ли наш сайт по ссылке
https://site.ru
Если сайт открылся, то в меню VMBitrix переходим по
6. Configure pool sites 5. Change a site's https settings и отключаем доступ по HTTP.
Меню виртуальной машины Bitrix 7.4.3
Как настроить автоматическое продление бесплатного SSL сертификата
Так как бесплатный SSL-сертификат имеет срок действия 90 дней, то нам нужно предусмотреть механизм автоматического обновления сертификата. Это можно сделать вручную, выполнив команду на сервере:
certbot renew
И все сертификаты, которые истекают менее чем через 30 дней будут обновлены на новые. Но нам нужно это автоматизировать. Для этого в cron добавим задание.
Выполняем команду:
crontab -e
Откроется при помощи Vi редактора. дула добавляем задание, которое будет выполняться ежедневно в 03:30:
30 3 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
На этом нашу настройку бесплатного сертификата Битрикс24 считаю законченной!