Устанавливаем бесплатный SSL-сертификат от Let's Encrypt на Битрикс24 (VMBitrix)

10.12.2019

Получаем бесплатный SSL сертификат для Битрикс24 (Bitrix VM)

Чтобы в 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 itlocate.ru -d www.itlocate.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
Сообщение об успешном выпуске сертификатов для сайта на Битрикс (VMBitrix)
Сообщение об успешном выпуске сертификатов для сайта на Битрикс (VMBitrix)

Мы получили наши сертификаты и они лежат тут: /etc/letsencrypt/live/itlocate.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/itlocate.ru/fullchain.pem;
ssl_certificate_key    /etc/letsencrypt/live/itlocate.ru/privkey.pem;

После этого необходимо рестартануть наш nginx:

systemctl restart nginx

Теперь можно проверить доступен ли наш сайт по ссылке https://itlocate.ru

Если сайт открылся, то в меню VMBitrix переходим по 6. Configure pool sites 5. Change a site's https settings и отключаем доступ по HTTP.

Меню виртуальной машины Bitrix 7.4.3
Меню виртуальной машины 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 считаю законченной 😎!

Возможные ошибки!

Как открыть меню битрикс в VMBitrix 🙃

Да, бывает и такое! Для того, чтобы вызовать меню настроек VMBitrix 7.X.X из командной строки Linux необходимо выпольнить следующую команду:

/root/menu.sh
Или просто, если вы уже находитесь в root директории.
./menu.sh

Удаление ААА записи

В моём случае я столкнулся с следующей ошибкой. Я прописал A запись с указанием моего сервера с VMBitrix и домен открывался, однако сертификат выпустить не удавалось 😈 :

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: test.domain.com
   Type:   connection
   Detail: Fetching
   http://test.domain.com/.well-known/acme-challenge/oTk4n-oaIuuAo_3WUSyh153oK5JLVGPedvHiztgoU68:
   Error getting validation data

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

В итоге моя А запись разнилась с ААА записью. После удаления ААА записи всё получилось. 😉

Автору на кофе ☕ или просто поднять мотивацию писать больше статей для вас 😉 !
Отдельное спасибо всем, кто отправляет донатики 😀! Очень приятно и неожиданно. Благодаря вам сайт может и в дальнейшем обходиться без рекламных баннеров.
10045