Bitrix VM 7 не обновляются сертификаты letsencrypt

Не перевыпускаются  сертификаты 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
Все что  нам остается это  применить сертификаты.

systemctl reload nginx

Ну и если это не помогло а ошибок при генерации сертификатов уже нет, то пересоздадим сертификат заново в меню 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


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


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

Сперто https://klondike-studio.ru/blog/bitrix-vm-ne-obnovlyayutsya-sertifikaty-letsencrypt/