Bitrixvm letsencrypt error

Добрый день!Последнее время при попытке сконфигурировать сертификат Let's encrypt процесс заканчивается ошибкой. Причём заметил это на двух разных серверах c Bitrix virtual appliance version 7.3.1. Может кто-то сталкивался с такой же проблемой?

чтоб не плодить темы напишу сюда.
можете подсказать закончилось место на диске. не заметил. попытался обновить сертификат в итоге nginx перестал запускатся.
systemctl status nginx -l

● nginx.service — nginx — high performance web server
  Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  Active: failed (Result: exit-code) since Tue 2022-03-15 09:33:52 MSK; 17min ago
    Docs:

http://nginx.org/en/docs/

 Process: 856 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)

Mar 15 09:33:52 crm.crm.MYcompany systemd[1]: Starting nginx — high performance web server…
Mar 15 09:33:52 crm.crm.MYcompany nginx[856]: nginx: [emerg] cannot load certificate «/home/bitrix/dehydrated/certs/crm.MYcompany/fullchain.pem»: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/home/bitrix/dehydrated/certs/crm.MYcompany/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)
Mar 15 09:33:52 crm.crm.MYcompany nginx[856]: nginx: configuration file /etc/nginx/nginx.conf test failed
Mar 15 09:33:52 crm.crm.MYcompany systemd[1]: nginx.service: control process exited, code=exited status=1
Mar 15 09:33:52 crm.crm.MYcompany systemd[1]: Failed to start nginx — high performance web server.
Mar 15 09:33:52 crm.crm.MYcompany systemd[1]: Unit nginx.service entered failed state.
Mar 15 09:33:52 crm.crm.MYcompany systemd[1]: nginx.service failed.

/home/bitrix/dehydrated/dehydrated -c

+ Challenge validation has failed
ERROR: Challenge is invalid! (returned: invalid) (result: [«type»]      «http-01                                                                                                                                                             «
[«status»]      «invalid»
[«error»,»type»]        «urn:ietf:params:acme:error:connection»
[«error»,»detail»]      «Fetching

http://crm.MYcompany/.well-known/acme-challeng

                                                                                                                                                            e/u7vcgx9M63wVKujWd8RzEYKlZes3p9V3dHZ1kxqHB6s: Connection refused»
[«error»,»status»]      400
[«error»]       {«type»:»urn:ietf:params:acme:error:connection»,»detail»:»Fetchi      

я так понимаю он не стартует изза SSL, ssl не могу установить без nginix.   (доступ по http включил через меню)

как можно стартануть его чтоб попытаться загрузить сертификат , и запустить все ?

Пытаюсь выпустить сертификат с помощью встроенного скрипта Bitrix VM и получаю такую ошибку:

Note:
S - Only HTTPS access to the server (N = turned off, Y = turned on)

Available actions: 
		 
	1. Configure "Let's encrypt" certificate
	2. Configure own certificate
	3. Restore default certificate
	0. Go to previous screen or exit

Enter your choice: 1

Separate multiple entries with a comma. Example: default, test

Enter site name (default): xxxxxxxxxx.com

Separate multiple entries with a comma. Example: www.example.org, example.org

Enter DNS name(s): xxxxxxxxxx.com


Enter email for "Let's encrypt" notifications: admin@xxxxxxxxxx.com

These sites were not found:  xxxxxxxxxx.com

Press ENTER to exit.

Что я делаю не так?


  • Вопрос задан

    более трёх лет назад

  • 2078 просмотров

Есть у меня подозрение что вы не то пишите.
При выходе в панель у вас должна быть аналогичная картинка

------------------------------------------------------------------------------------
SiteName        | dbName          |       Type | S | Certificate          | Key
------------------------------------------------------------------------------------
default         | sitemanager0    |     kernel | N |  |
------------------------------------------------------------------------------------

И при указании
Enter site name (default): xxxxxxxxxx.com

Вы должны писать то, что находится в первом столбце. Т.е. не url-сайта, а вот это вот «default» или что у вас там.

Пригласить эксперта

проверь DNS

resolv.conf подправь если что

1. КЕШ ДНС
2. А запись ведет не на этот сервер
3. А запись www ведет не на этот сервер
4. Превышен интервал проверок
5. зайди в логи посмотри


  • Показать ещё
    Загружается…

09 февр. 2023, в 10:11

1500 руб./в час

09 февр. 2023, в 09:53

10 руб./за проект

09 февр. 2023, в 09:28

5000 руб./за проект

Минуточку внимания

Не перевыпускаются сертификаты letseycrhpt на Bitrix VM 7.3.(0-3)
Код ошибки: DLG_FLAGS_SEC_CERT_DATE_INVALID
Такую ошибку я видел уже несколько раз на серверах клиентов и всегда она ставила их в тупик, поскольку выдачей сертификатов занимается сама VM
Если у вас сертификат не смог обновиться то проверим смело:

  • Удалите старые сайты, А запись которых не ведет на этот сервер, но сертификат пытается выпуститься на этом сервере.
  • Убедитесь что ААА — запись отсутствует, letsencrypt не поддерживает эту запись
  • Убедитесь что для домена www есть А запись и она отдается с этого же сервера.
  • У вас есть место на сервере.
  • Вы уже создали 5 раз за неделю сертификат.

Если сертификат генерируется но не применяется, сразу смотрим патч внизу.
Если все вышесказанное уже сделано, то смотрим как генерируется сертификат в Bitrix VM 7.

В /etc/letsencrypt ничего нет. Так же ничего нет в crontab, да и вообще certbot тоже нет.
В Bitrix VM 7 используется dehydrated

Запустим генерацию сертификатов аналог certbot renew

 cd /home/bitrix/dehydrated/ && ./dehydrated -c 

Смотрим на чем встала генерация, и исправляем.
В том же каталоге лежит файл со списком доменов для обновления /home/bitrix/dehydrated/domains.txt
Убедимся что ничего не сломалось

 nginx -t

Все что нам остается это применить сертификаты.

nginx -t && nginx -s reload

или

systemctl reload nginx

Иногда сертификаты сгенерированны, и установлены, но не примерились автоматически.
Если такая ситуация повторяется просто поставьте на крон применение сертификатов.

* */12 * * * /usr/sbin/nginx -t && /usr/sbin/nginx -s reload  >/dev/null 2>&1 

Ну и если это не помогло а ошибок при генерации сертификатов уже нет, то пересоздадим сертификат заново в меню VM 8 -> 3 ->1 ( и на вопрос о перегенерации отвечаем да) ждем минуту а желательно открываем в инкогнито и проверяем.

Где и что смотреть

Запустить генерацию letsencrypt сертификата с консоли:

sudo -u root /opt/webdir/bin/bx-sites -a configure_le --site "site.ru" --email "le@site.ru" --dns "site.ru www.site.ru" -o json

Лог генерации битрикс вм:

 /opt/webdir/temp/номер вашей задачи

Лог генерации сертификата:

/home/bitrix/dehydrated_update.log

Сами сертификаты:

 /home/bitrix/dehydrated/certs

Так же из-за способа проверки валидности сертификата самой вм, возможна ошибка

"type": "urn:acme:error:rateLimited", 
  "detail": "Error creating new cert :: too many certificates already issued for exact set of domains: site.ru,www.site.ru: see https://letsencrypt.org/docs/rate-limits/",
  "status": 429

Возникнуть она может по двум причинам
— Вы действительно слишком часто его создавали
— Алгоритм обновления сертификата дожидается валидного завершения от ВСЕХ сайтов! При том он их действительно принудительно пере создает (даже валидные сертификаты).

Как следствие сертификат может быть даже реально создан, но поскольку ожидается код завершения по всем сертификатам на сервере и какой-то из них ошибочный то ни один из сертификатов не примерится, даже если он реально нормальный.
Тех поддержка обещала исправить баг в коде, однако сроки не называют, так что предлагаю собственный патч на VM

#!/bin/bash
# патчим баг битиркс вм принудительные генерации сертификатов.
if cat /etc/ansible/roles/web/tasks/dehydrated.yml | grep '/home/bitrix/dehydrated/dehydrated -c --force'; then
  sed  -i 's/dehydrated -c --force/dehydrated -c/g' /etc/ansible/roles/web/tasks/dehydrated.yml
fi

Поскольку попытки действительно кончились, все что нам остается это дождаться следующего дня и убедиться что теперь сертификаты не только создаются но и нормально применяются.

Отозвать сертификат, и вернуть дефолтный Bitrix сертификат можно вот так:

sudo -u root /opt/webdir/bin/bx-sites -a reset_cert --site "site.ru" -o json

Обратите внимание
ВМ 7.3.4 — полностью изменили выдачу сертификатов на классическую certbot

Установка SSL сертификата LetsEncrypt на виртуальную машину битрикс BitrixVM занимает не мало времени, хотя в ней встроен необходимый для этого функционал, но у меня он не заработал.
Из коробки ставиться он так:
Запускаете консольное меню командой 
cd

./menu.sh

Выбираем пункты:
8. Manage pool web servers

3. Configure certificates

1. Configure «Let’s encrypt» certificate

Указывает сайт, домен (можно несколько через запитую, надо указать обязательно домен с www и без) и email, на который могут приходить оповещения от центра сертификации. 

Готово! На этом собственно все, но это если конечно не возникло никаких ошибок, что мало вероятно. 
Если ошибки вы можете посмотреть в пункте 10 основного меню 
10. Background pool tasks
где будет записи вида

 ----------------------------------------------------------------------------------------------------
TaskID                     | Started at            |          Status | Last Step
----------------------------------------------------------------------------------------------------
site_certificate_5810768246 | 31/03/2020 15:24      |        finished | play|complete
site_certificate_4121217367 | 31/03/2020 14:55      |        finished | play|complete

Где в колонке Status у вас скорее всего будет написано error
Подробности ошибки вы можете посмотреть в файле /opt/webdir/temp (название задачи) в моем случае site_certificate_5810768246.

Ошибки там могут быть разные, останавливаться на этом не будем. Ошибок также может и вообще не быть. Те что были у меня я исправил, сертификат создавался, в задачах указан статус finished, но все равно сайт на https не работал, в нужных конфигах ничего не происходило, не было никаких изменений.

Конфиги, которые нужно изменять:

/etc/nginx/bx/site_avaliable/ssl.s1.conf

/etc/nginx/bx/site_enabled/s1.conf



/etc/nginx/bx/site_avaliable/push.conf


/etc/nginx/bx/conf/ssl-push.conf  (ssl-push-custom.conf)



/etc/nginx/certs/push-server/

Также если у вас изначально указан не правильный домен, например тестовый от хостинга, то нужно его везде заменить здесь 
/etc/ansible/host_vars как название файла в этой папке так и внутри файла.
Также в 
/etc/ansible/hosts
/etc/hostname
/etc/hosts

Ставим сертификат вручную: 

Вводим команды

 
mkdir /opt/letsencrypt && cd "$_"
git clone https://github.com/certbot/certbot
cd certbot
./certbot-auto certonly --webroot --agree-tos --email info@site.ru -w /home/bitrix/www/ -d site.ru -d www.site.ru

где указываем e-mail, путь до сайта и нужные домены.

После чего если видим надпись вида: 
IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:

редактируем наши конфиги, в которых указываем пути к нашим сертификатам, в моем случае это конфиг /etc/nginx/bx/site_avaliable/ssl.s1.conf

ssl_certificate   /etc/letsencrypt/live/site.ru/fullchain.pem;
ssl_certificate_key  /etc/letsencrypt/live/site.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/site.ru/chain.pem;

Проверяем, что не ошибок nginx  -t
Перезапустим сервер service nginx restart 

После чего сайт должен работать на бесплатном сертификате.

Не забываем также добавить задание в крон, на обновление сертификата

00 3 * * * /opt/letsencrypt/certbot/certbot-auto renew --post-hook "systemctl reload nginx"

которое будет проверять и делать обновление в 3 часа ночи, это можно сделать командой crontab -e или отредактировав файл /var/spool/cron/root

Если нужно установить платный сторонний сертификат, об это написано в этой статье Битрикс настройка SSL, ошибка работы с сокетами

Загрузка

Установка LetsEncrypt SSL-сертификатов прямо из панели виртуальной машины bitrix VM! Источник: 

С версии 7.2.2 битрикс-машины появилась возможность подключать бесплатные валидные SSl-сертификаты от Lets Encrypt прямо из меню виртуальной машины.

Let’s Encrypt — центр сертификации, начавший работу в бета-режиме с 3 декабря 2015 года, предоставляющий бесплатные криптографические сертификаты для HTTPS. Процесс выдачи сертификатов полностью автоматизирован. Сертификаты выдаются только на 3 месяца для предотвращения инцидентов безопасности.

Ограничения LetsEncrypt:

1/ https://community.letsencrypt.org/t/which-browsers-and-operating-systems-support-lets-encrypt/4394
2/ Firefox. Как мимимум с 4.0 (возможно с 1.0) работает. (StartSSL в древних лисах работать не будет). Все современные лисы работают всеми CA.
3/ Thunderbird. Точно все современные версии на всех ОС (включая wosign. StartSSL в древних версиях не поддерживается)
4/ IE и Edge. Минимум 8 версия для всех. IE6 точно не поддерживается, по IE7 в зависимости от условий.
5/ Chrome и Cromium. Поддержка ОС аналогично встроенной ОС криптоапи (древние макоси, линуксы и winXP не будут работать ни с каким CA).
6/ Safari на всех современных Apple-устройствах точно работает.
7/ Android точно работает с версии 4.2 со всеми . Версия 2.0.6 (Android browser 2.0.6 Webkit 530.17) точно НЕ работает.
8/ Java не работает с letsencrypt.
9/ wget и curl могут не работать на старых системах

Как установить бесплатный ssl сертификат от Lets Encrypt в битрикс-машине?

В меню машины пройти по пунктам 8. Manage web nodes in the pool -> 3. Certificates configuration -> 1. Configure Let’s encrypt certificate. Указать сайт (или сайты), dns имена сайта(-ов), email для нотификаций сервиса Lets Encrypt, подтвердить ввод.

Пример:

Мастер самостоятельно запросит и установит сертификат из сети.
Поддерживается ввод нескольких сайтов, через запятую (test1.bx, test2.bx).

Перевыпуск сертификатов будет автоматический. Это отлично, с учетом того что сертификат дается только на 3 месяца.

Что делать, если сертификат не устанавливается и битрикс машина выдает ошибку?

Мое знакомство с данным новшеством прошло именно так: после настройки сертификата фоновая задача в машине завершалась с ошибкой:

---------------------------------------------------------
TaskID                      |    Status | Last Step
----------------------------------------------------------
site_certificate_1113161018 |    error |  play|complete

Смотрим логи и выясняем подробности. Директория /opt/webdir/temp содержит логи задач, смотрим по нашей задаче site_certificate_1113161018.

Первый лог /opt/webdir/temp/site_certificate_1113161018/status, в нем есть строчка с прерыванием, а также видим и второй лог:

TASK [web : create certificates] ***********************************************
fatal: [acrit]: FAILED! => {"changed": true, "cmd": "/home/bitrix/dehydrated/dehydrated 
-c > /home/bitrix/dehydrated_update.log 2>&1" ...

С этого места становиться понятно, что машина установила библиотеку dehydrated в папку /home/bitrix/dehydrated, а лог ее выполнения расположен в dehydrated_update.log

Смотрим второй лог /home/bitrix/dehydrated_update.log, в нем тоже есть ошибка:

+ Responding to challenge for www.goooodsite.ru..
ERROR: Challenge is invalid! (returned: invalid) (result: {
 "type": "http-01",
 "status": "invalid",
 "error": {
   "type": "urn:acme:error:unauthorized",
   "detail": "Invalid response from http://www.goooodsite.ru/.well-known/acme-challenge/dummy",
   "status": 403
 }, 
})

Выходит, что для проверки требуется доступность сайта по http и https с самоподписанным сертификатом, дабы проверить права владения на оба сайта.

Поэтому настроим редирект и еще раз запустим получение ключа:

1/ Отключаем редирект с http и https

2/ Создаем вручную папку на сайте /.well-known/acme-challenge/ с текстовым файлом внутри:

echo "thisisthecontentoffile" > /home/bitrix/www/site/.well-known/acme-challenge/dummychallengefile

и проверяем чтобы этот файл корректно открывался для http и https: http://www.goooodsite.ru/.well-known/acme-challenge/dummychallengefile https://www.goooodsite.ru/.well-known/acme-challenge/dummychallengefile

3/ Запускаем заново, и опять ошибка. Опять смотрим логи задачи. На этот раз сертификат получен, а ошибка в конфигурации сайта в nginx: /etc/nginx/bx/site_avaliable/bx_ext_ssl_www.goooodsite.ru.conf

4/ ошибку устраняем (лишняя директива из-за авто-вставки настроек в файл) и видим что сертификат добавился в конфиг, а сами сертификаты хранятся тут /home/bitrix/dehydrated/certs/:

# CERTIFICATE ANSIBLE MANAGED BLOCK
include bx/conf/ssl_options.conf;
ssl_certificate   /home/bitrix/dehydrated/certs/www.goooodsite.ru/fullchain.pem;
ssl_certificate_key  /home/bitrix/dehydrated/certs/www.goooodsite.ru/privkey.pem;
ssl_trusted_certificate /home/bitrix/dehydrated/certs/www.goooodsite.ru/chain.pem;
# CERTIFICATE ANSIBLE MANAGED BLOCK

5/ nginx перезапускаем, редирект из http в https возвращаем. Сертификат добавлен.

Вот собственно путь отладки и исправления ошибки авто-установки сертификата, если сертификат был установлен на сайте, как написано в статье «Установка ssl-сертификата для битрикс окружения bitrix vm».

Использованные материалы:

  • Халявные сертификаты для нищебродов без гемора. LetsEncrypt вместо Wosign и их подводные камни.
  • VMBitrix 7.2.0 в релизе
  • The client lacks sufficient authorization — 404

Назад в раздел

Пару дней назад произошла со мной такая история. Сажусь я создать SSL-сертификаты для нескольких сайтов…

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

Пару дней назад произошла со мной такая история. Сажусь я создать SSL-сертификаты для нескольких сайтов и коробочного портала Битрикс24. Все делаю по стандартному способу, который я описывал ранее тут. Но в итоге сертификат не выдается и в текущих задачах сервера я вижу ‘error’ на создании сертификата.

Начинаю копать логи. Иду в /opt/webdir/temp/, смотрю номер задания и просматриваю /status/. Виду такое:
Account creation on ACMEv1 is disabled. Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555. See 

https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430

 for details.

Значит на наших серверах проблем нет, а не создается аккаунт на стороне Let’s Encrypt. Прохожу по ссылке и становится понятно что с 31 октября 2019 года заканчивается поддержка регистрации сертификатов по api v1 и будет только по api v2. А виртуальная машина Битрикс как раз использует первую версию api.

Но ведь еще не 31 октября, в чем же дело? 

А вот в чем:
image_2019_10_11T11_04_45_651Z.png
Из текста видно, что регистрация будет дополнительно закрыта с 10 по 11 октября и с 16 по 18 сентября. А с 31 октября 2019 будет закрыта уже на совсем. И как раз получилось что я попал на эти даты. 12 числа создание сертификатов на VM bitrix уже работает и я успешно создал сертификаты своим клиентам.

Что делать после 31 октября 2019?

Удалось получить ответ от разработчиков Битрикс. О проблеме известно и уже на днях выйдет обновление виртуальной машины. И теперь, чтобы получать сертификаты вам обязательно нужно будет обновить свою виртуальную машину Битрикс.

Ее версия должна быть выше 7.4.1.

Оглавление

  • Получаем бесплатный SSL сертификат для Битрикс24 (VMBitrix)
  • Добавляем SSL-сертификаты в конфиги nginx для Битрикс24
  • Как настроить автоматическое продление бесплатного SSL сертификата
  • Возможные ошибки!

Получаем бесплатный 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.

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

Как получить ssl-сертификат бесплатно

Чтобы сделать интернет безопаснее, крупные западные корпорации совместно с фондом Electronic Frontier Foundation основали первый некоммерческий авторизационный центр Let’s Encrypt. Подробнее — см. по ссылке (на английском). Сервис разработан и поддерживается компанией Internet Security Research Group (ISRG).

Суть этого сервиса в том, что теперь любой сайт может бесплатно получить ssl-сертификат и продлять его без ограничения срока.

Получить бесплатный ssl-сертификат можно двумя способами:

  1. Вручную на сайте https://letsencrypt.org/getting-started/ и далее через раздел Ручной режим — manual mode
  2. Полуавтоматически или автоматически (в зависимости от ПО вашего сервера, на котором работает интернет-магазин, сайт или Битрикс24) через бота Certbot

Если Вы решили получить сертификат вручную, а затем установить его на свою Виртуальную машину Bitrix VM, воспользуйтесь готовой инструкцией по установке ssl-сертификата на виртуальную машину Битрикс.

Шаг 2. Установка ssl-сертификата на сервер

Если ваш интернет-магазин, сайт или портал Битрикс24 в коробке работает на виртуальной машине Битрикс, вы сможете установить и настроить ssl-сертификат от Let’s Encrypt при наличии у вас базовых знаний по администрированию серверов на Unix. Если вы не хотите тратить свое время или не обладаете такими навыками, пожалуйста, обращайтесь в нашу компанию, мы поможем перевести ваш сайт на HTTPS.

Если сайт работает на shared-хостинге, стоит обратиться к хостинг-провайдеру для установки ssl-сертификата. Процедура установки сертификата Let’s Encrypt на сервера без виртуальной машины принципиально не отличаются. В помощь Вам будет этот мастер на сайте Certbot — https://certbot.eff.org.

Стоит заметить, что для большинства веб-серверов Certbot работает в автоматическом режиме: он получает, устанавливает и продляет сертификаты самостоятельно.  Например, Apache на Ubuntu Server 16.10. А вот для Nginx на CentOS 6 не содержит в своем репозитории Certbot и работает только в ручном режиме. Подробнее  — см. https://certbot.eff.org

Установка ssl-сертификата Let’s Encrypt на Виртуальную машину Битрикс

Как мы помним, за работу по HTTPS в виртуальной машине Битрикс отвечает NGINX. Мы вернемся к нему, как только получим сертификат.

1. Для начала зайдем установим Certbot

Зайдем на сервер с интернет-магазином по ssh с правами root и установим Certbot в папку /usr/local/sbin напрямую в с сайта EFF.

$ cd /usr/local/sbin
$ sudo wget https:

Получить последнюю версию Certbot можно также с Github (убедитесь, что у вас есть git):

Далее переходим в директорию со свежескаченным Certbot-ом и дадим боту права на исполнение:

 $ sudo chmod a+x /usr/local/sbin/certbot-auto

2. Приступим к получению сертификата.
Для получения сертификата необходимо выполнить команду с вызовом Certbot’a с определенными параметрами:

$ certbot-auto certonly --webroot --agree-tos --email myemail@domen.ru -w /home/bitrix/www/ -d domen.ru -d www.domen.ru

где,

—webroot — специальный ключ, повышающий надежность работы Certbot под Nginx;
—agree-tos — автоматическое согласие с Условиями предоставления услуг (Terms of Services;
—email myemail@domen.ru — Ваш e-mail. Будьте внимательны, его нельзя изменить, он потребуется, например, для восстановления доступа к домену и для его продления;
-w /home/bitrix/www — указываем корневую директорию сайта основного сайта; если у вас несколько многосайтовая конфигурация, укажите путь к доп. сайту — /home/bitrix/ext_www/
-d domen.ru — через ключ -d мы указываем, для каких доменов мы запрашиваем сертификат. Начинать надо c домена второго уровня domen.ru и через такой же ключ указывать поддомены, например, -d www.domen.ru -d opt.domen.ru

Скрипт Certbot начнем свою работу, предложит установить дополнительные пакеты, соглашайтесь и ждите окончания работы.

При успешном завершении работы Certbot поздравляет Вас с генерацией сертификата и выдает следующее сообщение:

IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to sammy@digitalocean.com
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/domen.com/fullchain.pem. Your
   cert will expire on 2017-03-12. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Let's
   Encrypt so making regular backups of this folder is ideal.
 - If like Let's Encrypt, please consider supporting our work by:


   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

* — если вместо этого сообщения появляется ошибка «Failed to connect to host for DVSNI challenge «, то вам необходимо настроить ваш Firewall так, чтобы был разрешен TCP-трафик на портах 80 и 443.
** — если вы используете сервисы типа Cloudflare для вашего домена, предварительно отключите их на время генерации сертификата.

3. Настройка Nginx

Ура! Мы получили бесплатный ssl-сертификат на 3 месяца. Нам осталось только настроить Nginx и поставить автоматическое продление сертификата на cron.

Но сначала давайте повысим уровень безопасности и сгенерируем группу Диффи — Хеллмана. Это повысит уровень шифрования и поможет нам в дальнейшем получить оценку А+ при проверке сертификата.

$ openssl dhparam -out /etc/nginx/ssl/c/dhparam.pem 2048

Ждем примерно 2-4 минуты и переходим к конфигурированию Nginx.

Открываем файл /etc/nginx/bx/conf/ssl.conf и прописываем в нем пути к только что полученным сертификатам.

ssl_certificate         /etc/letsencrypt/live/infospice.ru/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/infospice.ru/privkey.pem; 

Ниже вы найдете дополнительные директивы Nginx, которые позволяет получить вам оценку А+ при проверке сертификата на sslanalyzer:

ssl                     on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECD$
ssl_prefer_server_ciphers on;

# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;

# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
resolver 8.8.4.4 8.8.8.8 valid=600s;
ssl_stapling_verify on;
ssl_dhparam             /etc/nginx/ssl/dhparam.pem;


ssl_certificate         /etc/letsencrypt/live/domen.ru/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/domen.ru/privkey.pem;


# performance
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout     10m;

Сохраняем изменения, тестируем конфигурацию Nginx:

Если никаких ошибок нет, перезапускаем Nginx:

И идем проверять свежеустановленный сертификат на сервисе SSL Analyzer — https://www.ssllabs.com/ssltest/.

Если вы все сделали правильно, то должны увидеть приятную картинку — как эта:

Для автоматического продления сертификата необходимо добавить в крон команды запуска certbot:

И добавляем строки

30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log  
35 2 * * 1 /etc/init.d/nginx reload

Теперь каждый понедельник в 2-30 наш сертификат(ы) будет продляться автоматически, результат запишется в лог. В 2-35, после продления сертификата, перезагрузится конфигурация Nginx.

Вручную же можно продлить сертификаты следующей командой:

Так как наши сертификаты уже сгенерированы, Certbot их просто продлит.

Если теперь вы хотите переключить весь трафик на HTTPS, то в ВМ Битрикс это делается согласно инструкции.

Итог

  1. Мы узнали, зачем нужен ssl-сертификат, какие виды сертификатов бывают.
  2. Получили бесплатный ssl-сертификат или купили его.
  3. Установили ssl-сертификат на сайт и проверили, что теперь сайт работает по HTTPS, как того добивался великий Google и иже с ними.

Про настройку интернет-магазина под HTTPS и оповещение поисковиков мы напишем в следующей статье.

Спасибо всем, кто дочитал до конца.

Установка сертификата Let’s encrypt

В меню Bitrix virtual appliance перейдите в пункт
 
8. Manage pool web servers 3. Configure certificates  

Выбрать пункт меню 1. Configure «Let’s encrypt» certificate и ввести:

  • site name – имя сайта или несколько имен сайтов, для которых нужно выпустить сертификат(ы) Let’s encrypt (в данном примере: test2.b24test.site)
  • dns name(s) – все домены данного сайта, для которых должен быть выпущен сертификат, включая домен с www и без, вводить несколько доменов через запятую
  • email for LE notifications – почтовый адрес для уведомлений сервиса Lets Encrypt

и подтвердить ввод:

  • Мастер самостоятельно запросит и установит сертификат в течение нескольких минут. Пути SSL-сертификатов будут указаны в этом же разделе:

  • Проверить выпущенный сертификат можно легко – перейти на ваш сайт по протоколу https, у валидного сертификата будет замочек.

Срок действия сертификата – 90 дней. Перевыпуск сертификата происходит автоматически за 20 дней до окончания срока его действия.

Ручное обновление сертификата

С версии BitrixVM 7.4.0 проверка сертификатов автоматически производится еженедельно в субботу в 2 часа ночи по cron-у.

Если вам нужно вручную обновить сертификат, запустите получение сертификата для существующего домена. Система проверит и при необходимости обновит сертификаты.

Также вы можете вручную обновить сертификаты командой:

/home/bitrix/dehydrated/dehydrated -c

Система проверит сроки действия сертификатов и при необходимости запустит обновление.

Лог обновления сертификатов можно посмотреть по пути: /home/bitrix/dehydrated_update.log.

Внимание.
У сервиса Lets Encrypt есть свои ограничения на выпуск сертификатов. Основные из них:

  • Выпуск 50 сертификатов в неделю на домены (на зарегистрированные домены у регистратора, поддомены не входят в этот счет).
  • Если у вас много поддоменов, то можно все поддомены указать в одном сертификате, но здесь есть лимит в 100 поддоменов в одном сертификате.
  • 5 ошибок в час выпуска сертификата на аккаунт для одного домена (не доступен хост, не прописаны записи в DNS домена и т.д).
  • Проверка HTTP-01 выполняется только с использованием порта 80. Если этот порт закрыт (провайдером, например), то сертификат не перевыпустится.

Понравилась статья? Поделить с друзьями:
  • Bitrixsetup php 500 ошибка
  • Bitrixsetup http error 500
  • Bitrix24 mysql query error
  • Bitrix резервное копирование error processing file
  • Bitrix показывать ошибки display errors