Let's Encrypt и конец срока действия IdenTrust DST Root CA X3

Тип статьи

Решение проблемы

Компетенции

Всем работающим в платформе

Необходимые права

SSH доступ c root

Версия платформы

2.18 и выше (указано дополнительно)

Статус

БЕТА

Сложность

легко

Полезные ссылки

30 сентября: Let's Encrypt и конец срока действия IdenTrust DST Root CA X3

Дополнительные сведения

Ubuntu 18.04

Описание проблемы

30 сентября 2021 года истек срок действия корневого сертификата IdenTrust DST Root CA X3. Это застрагивает все стенды с платформой, работающие на HTTPS с сертификатом от Let’s Encrypt. Могут перестать работать компоненты admin, smart-forms, viqube-admin, ssbi.

В версии 2.18 (вероятно в 2.19 и в 2.20 аналогично) перестают работать все перечисленные компоненты. В последней на момент написания статьи версии 2.23 (вероятно и в 2.21, и в 2.22) только smart-forms. Более ранние версии в статье не рассматриваются. Предположительно с 2.24 проблем не должно быть вовсе - реквест на исправление создан, его ссылка ниже.

Соответствующие разделы в веб администрировании могут быть недоступны. В логах компонентов будут ошибки, связанные с сертификатом. Пример ошибки для smart-forms:

The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {ab7c1f32-c3f3-4342-b8c0-e80cf0e5df0e} was not found in the key ring

The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {ab7c1f32-c3f3-4342-b8c0-e80cf0e5df0e} was not found in the key ring

 

Описание решения

Решение 1 (рекомендуется).

Генерируем сертификат с явным указанием нового корневого центра и все сразу должно работать. Проверено на 2.21.1.

certbot certonly --standalone -d bi.visiology.com --force-renewal --preferred-chain "ISRG Root X1"

Решение 2 (Далеко не всегда помогает).

1. Заходим в каждый контейнер, компонент которого не работает. Например для smart-forms (имя контейнера заменить на свое):

docker exec -it visiology_smart-forms-db.1.jsiby28xjvo10vk4jzaqocu06 bash

2. Редактируем файл /etc/ca-certificates.conf. Нужно найти строчку: mozilla/DST_Root_CA_X3.crt и поставить перед ней восклицательный знак. Пример:

3. Копируем файл на хост в папку /opt, пример:

4. В YML файлы дистрибутива платформы добавляем записи для монтирования файла (иначе после перезапуска платформы все изменения внутри контейнера пропадут). Для smart-forms это будет smart-forms.yml (сделать записи для всех двух ее докер сервисов):

5. Перезапускаем платформу.