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. Перезапускаем платформу.