Устанавливаем бесплатный SSL-сертификат от Let's Encrypt на Битрикс24 (VMBitrix)
Получаем бесплатный 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
Мы получили наши сертификаты и они лежат тут: /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.
Как настроить автоматическое продление бесплатного 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.
В итоге моя А запись разнилась с ААА записью. После удаления ААА записи всё получилось. 😉