Site certificate error bitrix

Добрый день, господа: При выписывании ssl от Let;s Encrypt внтури машины ошибка в статусе:TASK [web : register dehydrated] ***********************************************fatal: [mydomain.ru]: FAILED! => {"changed": true, "cmd": "/home/bitrix/dehydrated/dehydrated --register --accept-terms", "delta": "0:00:01.094347", "end": "2019-03-04 14:00:18.275967",...
 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

Добрый день, господа: При выписывании ssl от Let;s Encrypt внтури машины ошибка в статусе:

TASK [web : register dehydrated] ***********************************************
fatal: [mydomain.ru]: FAILED! => {«changed»: true, «cmd»: «/home/bitrix/dehydrated/dehydrated —register —accept-terms», «delta»: «0:00:01.094347», «end»: «2019-03-04 14:00:18.275967», «failed»: true, «rc»: 1, «start»: «2019-03-04 14:
00:17.181620″, «stderr»: «ERROR: API version 1 is no longer supported», «stdout»: «# INFO: Using main config file /home/bitrix/dehydrated/config», «stdout_lines»: [«# INFO: Using main config file /home/bitrix/dehydrated/config»], «warnin
gs»: []}

Везде искала это:ERROR: API version 1 is no longer supported, не нашла.

Кто может перевести?

Предыстория: меняли имя хоста вот по такой инструкции, т.к. штатными средствами не получилось и ssl пытался выписаться на прошлое имя хоста:

https://dev.1c-bitrix.ru/support/forum/forum32/topic90229/

 

Надежда Неверова, а версия VM какая?

 

Пользователь 1854721

Заглянувший

Сообщений: 16
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 04.05.2018

https://twitter.com/acme_dehydrated/status/1102320683747602433

dehydrated обновился 20 часов назад, в нем убрали API v1
можно certbotом выпустить сертификат

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#4

0

04.03.2019 22:11:53

Цитата
Роман Воловик написал:
можно certbotом выпустить сертификат

Дайте точную ссылочку, пожалуйста.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#5

0

05.03.2019 01:07:46

Цитата
Андрей Николаев написал:
а версия VM какая?

всегда обновляем до последней, так что даже забываю указывать))

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#6

0

05.03.2019 01:14:03

Цитата
Роман Воловик написал:
можно certbotом выпустить сертификат

Вот эту инструкцию нашла, прошу прокомментировать

https://linux-notes.org/ustanovka-certbot-dlya-polucheniya-sertifikata-ot-letsencrypt-v-unix-linux/

И будет ли что-то в новых релизах vmbitrix, как думаете.

 

Пользователь 180446

Эксперт

Сообщений: 684
Баллов: 92
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 11.04.2013

Здесь правильный хост /home/bitrix/dehydrated/certs ?

 

Пользователь 1854721

Заглянувший

Сообщений: 16
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 04.05.2018

#8

0

05.03.2019 10:25:42

Цитата
Надежда Неверова написал:

Цитата
Роман Воловик  написал:
можно certbotом выпустить сертификат

Дайте точную ссылочку, пожалуйста.

https://certbot.eff.org/lets-encrypt/centosrhel7-nginx

только нужно будет домен в nginx вписать
для этого в файлах /etc/nginx/bx/site_avaliable/s1.conf и /etc/nginx/bx/site_avaliable/ssl.s1.conf
замените server_name _;
на server_name ваш.домен.ру;

 

Алексей Шафранский

Администратор

Сообщений: 1019
Баллов: 198
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 28.07.2008

#9

0

05.03.2019 13:38:35

Цитата
Надежда Неверова написал:
Добрый день, господа: При выписывании ssl от Let;s Encrypt внтури машины ошибка в статусе:

TASK [web : register dehydrated] ***********************************************
fatal: [mydomain.ru]: FAILED! => {«changed»: true, «cmd»: «/home/bitrix/dehydrated/dehydrated —register —accept-terms», «delta»: «0:00:01.094347», «end»: «2019-03-04 14:00:18.275967», «failed»: true, «rc»: 1, «start»: «2019-03-04 14:
00:17.181620″, «stderr»: «ERROR: API version 1 is no longer supported», «stdout»: «# INFO: Using main config file /home/bitrix/dehydrated/config», «stdout_lines»: [«# INFO: Using main config file /home/bitrix/dehydrated/config»], «warnin
gs»: []}

Везде искала это:ERROR: API version 1 is no longer supported, не нашла.

Кто может перевести?

Предыстория: меняли имя хоста вот по такой инструкции, т.к. штатными средствами не получилось и ssl пытался выписаться на прошлое имя хоста:  

https://dev.1c-bitrix.ru/support/forum/forum32/topic90229/

Надежда Неверова, день добрый. Разработчик dehydrated одумался и вернул обратно AIP v1. Только что попробовал выпуск сертификата — сработало.
А вот и история коммитов

https://github.com/lukas2511/dehydrated/commits/master

И по ней видно:
 

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#10

0

06.03.2019 10:30:54

Цитата
Алексей Шафранский написал:
Надежда Неверова , день добрый. Разработчик dehydrated одумался и вернул обратно AIP v1. Только что попробовал выпуск сертификата — сработало.

Круто! Пойду пробовать.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#11

0

06.03.2019 10:50:06

Цитата
Александр Медведев написал:
Здесь правильный хост /home/bitrix/dehydrated/certs ?

Да, правильный, новый.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#12

0

06.03.2019 10:51:57

TASK [web : create certificates] ***********************************************
fatal: [mydomen.ru]: FAILED! => {«changed»: true, «cmd»: «/home/bitrix/dehydrated/dehydrated -c —force > /home/bitrix/dehydrated_update.log 2>&1», «delta»: «0:00:15.525511», «end»: «2019-03-06 10:33:06.854424», «failed»: true, «rc»: 1, «start»: «2019-03-06 10:32:51.328913», «stderr»: «», «stdout»: «», «stdout_lines»: [], «warnings»: []}

NO MORE HOSTS LEFT *************************************************************
       to retry, use: —limit @/etc/ansible/web.retry

PLAY RECAP *********************************************************************
mydomen.ru              : ok=25   changed=10   unreachable=0    failed=1

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#13

0

06.03.2019 11:01:27

Не понять , вроде выписывает, вот кусок лога

ERROR: Problem connecting to server (get for

http://apps.identrust.com/roots/dstrootcax3.p7c

; curl returned with 7)
ERROR: Walking chain has failed, your certificate has been created and can be found at _далее путь_ If you want you can manually continue on creating and linking all necessary files. If this error occurs again you should manually generate the certificate chain and place it under /home/bitrix/dehydrated/chains/4f06f81d.chain (see

http://cert.int-x3.letsencrypt.org

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#14

0

06.03.2019 11:42:47

У меня уже 2 набора сертификатов в папке)Что посоветуете ждать или курить мануал по manually continue on creating and linking all necessary files?

 

Пользователь 180446

Эксперт

Сообщений: 684
Баллов: 92
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 11.04.2013

#15

0

06.03.2019 13:16:47

Цитата
Надежда Неверова написал:

Цитата
Александр Медведев  написал:
Здесь правильный хост /home/bitrix/dehydrated/certs ?

Да, правильный, новый.

Так, а теперь покажи /etc/nginx/bx/site_avaliable/ssl.s1.conf
Или другой ssl.* если не один сайт в vm

 

#16

0

06.03.2019 15:26:19

Надежда Неверова, а у вас снаружи доступ к серверу есть?

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#17

0

07.03.2019 13:26:32

Цитата
Александр Медведев написал:
Так, а теперь покажи /etc/nginx/bx/site_avaliable/ssl.s1.conf

more /etc/nginx/bx/site_avaliable/ssl.s1.conf
       # Default SSL certificate enabled website
       server {
               listen  443 default_server http2;
               server_name _;

               # Enable SSL connection
               include bx/conf/ssl.conf;
               server_name_in_redirect off;

               proxy_set_header        X-Real-IP       $remote_addr;
               proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_f
or;
               proxy_set_header        Host            $host:443;
               proxy_set_header        HTTPS           YES;

               set $proxyserver        «

http://127.0.0.1:8888&quot

;;
               set $docroot            «/home/bitrix/www»;

               index index.php;
               root /home/bitrix/www;

               # Include parameters common to all websites
include bx/conf/letsencrypt-challenge-tokens.conf;
               include bx/conf/bitrix.conf;

               # Include server monitoring API’s
               include bx/server_monitor.conf;

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#18

0

07.03.2019 13:27:40

Цитата
Андрей Николаев написал:
Надежда Неверова , а у вас снаружи доступ к серверу есть?

Да, есть. По http. И другие необходимые порты открыты и проброшены.

 

Пользователь 180446

Эксперт

Сообщений: 684
Баллов: 92
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 11.04.2013

#19

0

07.03.2019 15:25:33

Добавь это со своим доменом

Код
# CERTIFICATE ANSIBLE MANAGED BLOCK
include bx/conf/ssl_options.conf;
ssl_certificate   /home/bitrix/dehydrated/certs/[domain]/fullchain.pem;
ssl_certificate_key  /home/bitrix/dehydrated/certs/[domain]/privkey.pem;
ssl_trusted_certificate /home/bitrix/dehydrated/certs/[domain]/chain.pem;
# CERTIFICATE ANSIBLE MANAGED BLOCK

После

Код
proxy_set_header        HTTPS           YES;
 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#20

0

12.03.2019 08:11:47

Цитата
Александр Медведев написал:
Добавь это со своим доменом

После этого вообще все перестает работать)))

Прошу пояснить вашу инструкцию немного, кое-что непонятно.

1) include bx/conf/ssl_options.conf;
Путь указан относительный, но по пути /etc/nginx/bx/site_avaliable/ не существует bx/conf/ssl_options.conf.
Где он есть? Найти через команду find не удалось.

2) ssl_certificate   /home/bitrix/dehydrated/certs/[domain]/fullchain.pem;
ssl_certificate_key  /home/bitrix/dehydrated/certs/[domain]/privkey.pem;
ssl_trusted_certificate /home/bitrix/dehydrated/certs/[domain]/chain.pem;

по этому пути лежат файлы сертификатов (все 3 выписанных набора), но они выглядят так:

cert-1551857572.pem
cert-1551857572.csr
fullchain-1551857572.pem
privkey-1551857572.pem
chain-1551857572.pem

Добавление с точными именами не помогло, кстати, тоже.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#21

0

12.03.2019 08:21:16

Почему вообще возникла ERROR: Walking chain has failed….
Хотелось бы устранить причину этого, нам же еще потом сертификаты выписывать каждые 3 месяца.

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#22

0

12.03.2019 08:49:20

Цитата
Алексей Шафранский написал:
Надежда Неверова , день добрый. Разработчик dehydrated одумался и вернул обратно AIP v1. Только что попробовал выпуск сертификата — сработало.

Алексей, а какая версия машины у вас?

 

Алексей Шафранский

Администратор

Сообщений: 1019
Баллов: 198
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 28.07.2008

#23

0

12.03.2019 11:22:47

Цитата
Надежда Неверова написал:
Алексей, а какая версия машины у вас?

Надежда Неверова, 7.3.4 :)

 

Пользователь 46342

Постоянный посетитель

Сообщений: 184
Баллов: 30
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 29.07.2009

#24

0

13.03.2019 08:52:37

Цитата
Алексей Шафранский написал:
Надежда Неверова , 7.3.4

У нас ERROR: Walking chain has failed…. уже предельное число сертфикатов выписано, они валяются в папке, и советы выше не помогают.

Переустановка машины как-то поможет?

 

Пользователь 1706659

Заглянувший

Сообщений: 11
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 25.01.2018

#25

0

14.03.2019 03:58:17

Надежда Неверова,

http://apps.identrust.com/roots/dstrootcax3.p7c

доступен в ВМ ?

Не перевыпускаются сертификаты 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

Установка 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

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

Установка сертификата 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. Если этот порт закрыт (провайдером, например), то сертификат не перевыпустится.

После установки SSL сертификата в битриксе на виртуальной машине BitrixVM версии 7.4.1 начала появляться ошибка с сокетами, при этом если перейти на сайт по обычному http, то такой проблемы не наблюдается.
Ниже описано как решить данную проблему с сокетами при использование SSL сертификата и протокола HTTPS в Bitrix virtual appliance version 7.4.1 («1С-Битрикс: Веб-окружение»).

Открываем SSH клиет (PuTTY).
Если меню битрикса не отображается сразу, то заходим в меню следующей командой:

cd
./menu.sh

Затем выбираем поочередно пункты в меню:

8. Manage pool web servers
3. Configure certificates
2. Configure own certificate

Если данных пунктов у вас нет, то сначала нужно обязательно создать пул:
1. Create Management pool of server

После того, как зашли в пункт 2. Configure own certificate, указываем сайт или оставляем по умолчанию Enter site name (default):

Указываем:
Private Key path: /etc/nginx/ssl/cert.key
Certificate path: /etc/nginx/ssl/cert.crt
Certificate Chain path: /etc/nginx/ssl/cert_ca.crt

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

После вопроса Please confirm you want to update certificate settings for the sites (N|y): вводим Y и нажимаем enter.

Готово, сайт должен открываться по HTTPS, но у меня не работало, поскольку я не указывал Certificate Chain path, у меня не было сертификатов для цепочки (промежуточных) и пока я не указал эти сертификаты в Certificate Chain path у меня SSL не работал. Точнее сам сайт по HTTPS открывался нормально в защищённом режиме, но в проверке системы битрикс показывалась ошибка с сокетами: 
Ошибка! Работа с сокетами (check_socket): Fail Connection to ssl://site.com:443 Fail, Connection to ssl://site.com:443 Fail Socket error [0]: 
Подробности ошибки указаны в журнале проверки системы.

Также если обратится к сайту в консоли через curl командой:
curl https:// site.com :443
выходило следующие curl: (60) Peer’s Certificate issuer is not recognized.
При нормальной работе должен показываться HTML код сайта. 

Проблема еще была в том, что у меня не было никаких промежуточных сертификатов, а только публичный сертификат (CRT) и приватный ключ (Private KEY).

Центр сертификации мне больше ничего не выдавал, а точнее хостинг где я их покупал.
Техподдержка не отвечала, у них были праздничные выходные. 

Как же их получить? 
Нашёл решение такое, открываем сайт в браузере Firefox, нажимаем на замочек, затем на стрелку справа от зеленной надписи «Защищенное соединение», затем внизу «Подробнее».
После чего откроется окно «Информация о странице». Там нажимаем «Просмотреть сертификат».
Откроется страница с различными данными и параметрами сертификата. Находим ниже ссылки Загрузить PEM (сертификат) и PEM (цепочка сертификатов). Именно последний нам и нужен. Качаем PEM (цепочка сертификатов).

Формат PEM я переименовал в CRT. У меня сработало с ним, но возможно и с PEM сработает. 
После того как я указал этот chain сертификат, как указано выше в Certificate Chain path, у меня наконец-то пропала ошибка с сокетами и все наконец стало работать как надо. 

Записи о сертификатах создаются в файле:
/etc/nginx/bx/site_avaliable/ssl.s1.conf 

там указано где хранятся сертификаты:
ssl_certificate   /etc/nginx/certs/default/cert.crt;
ssl_certificate_key  /etc/nginx/certs/default/cert.key;
ssl_trusted_certificate /etc/nginx/certs/default/cert_ca.crt;

Также данные записи были сделаны в файле /etc/nginx/bx/conf/ssl-push-custom.conf
А изначально настройки брались из /etc/nginx/bx/conf/ssl.conf

В документации вообще сказано, что для сайта по умолчанию s1 (который находится в директории /home/bitrix/www) файл будет называться /etc/nginx/bx/site_avaliable/s1.ssl.conf, а для дополнительных сайтов (которые создаются в директории /home/bitrix/ext_www/название_хоста) — /etc/nginx/bx/site_avaliable/bx_ext_ssl_название_хоста.conf.

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

Не забываем также указать в файле /etc/hosts ваш IP и домен. я указал два ip версии 4 и 6, а также 127.0.0.1 localhost

После правок нужно выполнить команду 
nginx  -t
И перезагрузить 
service nginx restart или # /etc/init.d/nginx restart

Если нужно установить бесплатный сертификат LetsEncrypt, об это написано в этой статье Установка SSL сертификата LetsEncrypt на BitrixVM

Загрузка

Продолжаем разбираться с “Битрикс: Веб-окружение”. В прошлой статье разобрались, с установкой и настройкой. В этой расскажу, как получить и привязать бесплатный SSL-сертификат от Let’s Encrypt в “Битрикс: Веб-окружение”.

Получаем бесплатный SSL-сертификат

Для управления выдаваемыми сертификатами у Let’s Encrypt есть специальное решение под названием certbot. Подробную документацию можете найти на официальном сайте, а я просто покажу рабочую схему.
Первым делом:

# yum -y install yum-utils

# yum-config-manager —enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

И ставим, собственно, сам
certbot
.

На этом подготовительный этап завершен.
Теперь собственно попросим выдать нам сертификат. Следующий момент, метод который я использую подразумевает, что будет использован собственный механизм от Let’s Encrypt, который работает через 443 порт, на котором у нас висит nginx. Способов обхода масса, самый простой остановить nginx, получить сертификат и запустить заново.

Запрашиваем сертификат.
yourdomain.ru
замените на ваш домен.

# certbot certonly —standalone -d yourdomain.ru -d www.yourdomain.ru

Ответив на несколько простых вопросов вы получите сообщение об успехе.

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

Сертификат успешно сформирован

Вот и все, наши сертификаты готовы. Находятся они в
/etc/letsencrypt/live/yourdomain.ru/

Добавляем SSL-сертификаты к Битрикс

Дело за малым, осталось привязать сертификаты к нашему сайту. Если у вас один сайт в веб-окружении, то нам понадобится файл
/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/yourdomain.ru/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/yourdomain.ru/privkey.pem;

Если у вас несколько сайтов, то делаем следующие шаги.
Сначала создадим конфиг под сайт.

# cp /etc/nginx/bx/conf/ssl.conf /etc/nginx/bx/conf/ssl.yourdomain.ru.conf

Именно в нем указываем пути к нашим сертификатам, так же как описано выше.
Затем находим файл
/etc/nginx/bx/site_avaliable/bx_ext_ssl_yourdomain.ru.conf
и в нем меняем:

на

include bx/conf/sl.yourdomain.ru.conf

Сохраняем файл и перезапускаем nginx.

# systemctl restart nginx

Перейдите на https://yourdomain.ru и убедитесь, что все работает.
Далее в меню веб-окружения перейдите
6. Manage sites in the pool
,
5. Change https settings on site
. Выберите ваш домен и отключите доступ по http.

Отключаем доступ по http

Отключаем доступ по http

Все, теперь ваш сайт работает по
https
и заметьте, совершенно бесплатно.

Настраиваем автоматическое продление сертификата

Естественно, что бесплатный SSL-сертификат не может быть идеальным. Срок действия сертификатов от Let’s Encrypt 90 дней, против года для платных. К счастью, это не такая уж и большая проблема. Стандартными механизмами предусмотрено автоматическое продление. Для этого надо выполнить команду:

После этого, все сертификаты которые истекают в ближайшие 30 дней будут обновлены. Есть следующая особенность, для обновления используется тот же механизм, что и для получения. В нашем случае это
--standalone
режим, который требует отключения nginx, для работы по 443 порту. Но и это предусмотрено – для
certbot
можно указать параметры
--pre-hook
и
--post-hook
, которые выполнят системные команды перед и после работы
certbot
. Таким образом наша строка обновления сертификатов приобретает следующий вид:

# certbot renew —pre-hook «systemctl stop nginx» —post-hook «systemctl start nginx»

Запустите с указанием дополнительного параметра
--dry-run
(прогонит процесс в холостую) и убедитесь, что ошибок нет.

# certbot renew —dry-run —pre-hook «systemctl stop nginx» —post-hook «systemctl start nginx»

Если все отлично, то добавим задание в cron, которое, скажем, раз в сутки в 2:16 (время сами выберите) ночи будет проверять и при необходимости обновлять наши сертификаты:

и добавляем задание

16 2 * * * /usr/bin/certbot renew —pre-hook «systemctl stop nginx» —post-hook «systemctl start nginx» >> /var/log/renew.log

В этой статье я расскажу как с помощью VM-Bitrix установить сертификат на сайт и что делать, если сертификат не хочет устанавливаться.

Let’s Encrypt – это некоммерческий проект, который позволяет выпускать бесплатные сертификаты со сроком использования – 90 дней. А в VM-Bitrix используется средство, которое по истечении этого срока в автоматическом режиме обновляет сертификат сайта.

Как создать сертификат

Сертификат с помощью VM-Bitrix создается очень просто. Приведу ниже инструкцию в виде галереи, просто листайте картинки.1 из 4

Выбираем 8. Manage pool web servers

Пройдемся по настройкам:

Enter site name – вводим название сайта, который нуждается в SSL сертификате

Enter DNS name – вводим DNS имена

Внимание! По всем введенным DNS именам должен открываться ваш сайта, иначе сертификат не будет получен.

Enter email – вводим любой, на него будут приходить уведомления о продлении сертификата

Проверка установки сертификата

Обязательно проверьте результат установки сертификата1 из 2

Выбираем 10. Background poll tasks

Если увидели finished – значит сертификат успешно установлен и внедрен в конфигурацию сервера. Открываем браузер в анонимном режиме, запускаем сайт и проверяем сертификат.1 из 3

Если видим значок замка, значит сертификат все хорошо. В подробнее можно ознакомится с сертификатом

Если по какой-то причине в браузере сайт ругается на отсутствие сертификата – попробуйте перезагрузить nginx в консоле сервера с помощью команды service nginx restart

В противном случае

Если на этапе установки увидели статус error, то идем смотреть логи по пути /home/bitrix/dehydrated_update.log и разбираться в чем проблема

Просматривать логи особенно удобно с помощью программы «mc», так что рекомендую поставить. Если у вас centos, то это делается с помощью консольной команды «yum install mc»

Ошибка в логах пишется прямым текстом, примера у меня нет, поэтому сразу перейду к рассказу о том, какие бывают ошибки.

Частые причины ошибки

  • Сайт недоступен из внешней стороны

Что делать: проверить доступность сайта с анонимной вкладки или другого устройства, возможно в .htaccess задано ограничение, например http-авторизация

  • Не привязано доменное имя

Что делать: проверьте A записи домена в панеле управления доменного имени

  • Введен недопустимый DNS или он введет не на текущий сайт

Что делать: проверьте открытие сайта с тех DNS, которые вводили на этапе установки. Сайт должен открываться по ним. Например, www.test.ru, test.ru

  • Неправильные настройки конфигурации сервера

Что делать: загляните в конфигурацию nginx на наличие установленных директив подключения сертификата

  • Слишком много запросов к сервису Let’s Encrypt

Что делать: у сервиса есть ограничение на количество запросов. Если случилась эта ошибка, попробуйте на следующий день повторить процедуру

Как сгенерировать SSL на сайт другой платформы

Если у вас сайт не на Битриксе, а допустим какой-нибудь WordPress, то вы, скорее всего, не сможете создать для него сертификат через VM-Bitrix. Но можно схитрить:

  • В папке /home/bitrix/dehydrated/domains/ создаем текстовый файл с названием вашего домена. Например, test.web-masterok.ga.txt
  • В созданный файл добавляем название доменного имени test.web-masterok.ga

Просто вносим название сайта

Просто вносим название сайта

И теперь запускаем файл /home/bitrix/dehydrated/dehydrated с ключом -c.

Так происходит проверка на валидность. В случае добавления, произойдет запрос сертификата для добавленного сайта

Так происходит проверка на валидность. В случае добавления, произойдет запрос сертификата для добавленного сайта

Механизм пройдет по всем существующим сертификатам и проверит их на валидность. Для нового запросит сертификат.

Все созданные сертификаты помещаются в папку /home/bitrix/dehydrated/certs/ – там будет лежать и новый сертификат.

Остается только подключить сертификат в конфигурации nginx по пути /etc/nginx/bx/site_avaliable/bx_ext_ssl_test.web-masterok.ga в пределах директивы server:

include bx/conf/ssl_option.conf;

ssl_certificate /home/bitrix/dehydrated/certs/test.web-masterok.ga/fullchain.pem;

ssl_certificate_key /home/bitrix/dehydrated/certs/test.web-masterok.ga/privkey.pem;

ssl_trusted_certificate /home/bitrix/dehydrated/certs/test.web-masterok.ga/chain.pem;

Вот как-то так в пределах директивы server

Вот как-то так в пределах директивы server

Затем проверяем с помощью консольной команды sudo nginx -t корректность внесенных правок в конфигурацию. Если все хорошо, перезагружаем nginx. Сертификат должен подключится.

Заключение

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

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Sis error your request cannot be processed
  • Sip ошибка 480
  • Sip коды ошибок
  • Sip transport error
  • Sip error 503

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии