30 сентября истекает сертификат DST Root CA X3ment

30 сентября 2021 заканчивается срок действия корневого сертификата IdenTrust DST Root CA X3, который использовался как основной корневой сертификат для Let’s Encrypt. 

Как это повлияет на пользователей Keitaro?

Это может затронуть тех клиентов, которые работают с трекером через удаленные запросы по HTTPS протоколу, например, при Admin API, Click API, KСlient.php и других скриптах интеграций, а также тех минимальный процент тех, кто работает на старых «машинах».

После истечения срока подключиться к серверу с трекером смогут только те системы, которые доверяют ISRG Root X1 (корневой сертификат Let’s Encrypt) с OpenSSL >= 1.1.0 или используют Android >= v2.3.6.

Общие рекомендации для пользователей Keitaro

Так как трекер Keitaro не поддерживает ручную установку отличных от Let’s Encrypt сертификатов, то самым простым и быстрым решением будет парковка домена в трекер через CloudFlare. Это перенесет проксирование на их сторону и тесты показывают, что это решает проблему. О том, как запарковать домен в трекер через CF, мы писали в статье: Keitaro + CloudFlare.

Как проверить готовность вашего удаленного сервера при работе по Admin API и др. скриптах

Проверять надо непосредственно удаленный сервер, который подключается к трекеру, то есть сервер, с которого идут запросы Admin API или развернут сайт с KClient.php и др.

Проверяем готовность сервера работать с сертификатом ISRG Root X1

На удаленном сервере, в консоли запускаем команду

для Centos, RHEL:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-bundle.crt | grep "ISRG Root X1"

для Debial, Ubuntu:

awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep "ISRG Root X1"

Если в полученном ответе находим следующий текст: 

subject= /C=US/O=Internet Security Research Group/CN=ISRG Root X1

То беспокоиться не о чем, проблема вас не коснется. Если ответ иной, то нужно скачать сертификат и применить изменения, для этого: 

Скачиваем сертификат

для Centos, RHEL:

сurl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt | sudo tee /etc/pki/ca-trust/source/anchors/ISRG_Root_X1.crt

для Debial, Ubuntu:

curl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt | sudo tee /usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt

Применяем изменения

для Centos, RHEL:

update-ca-trust extract

для Debial, Ubuntu:

update-ca-certificates

Повторяем первый пункт и проверяем, что сертификат появился. Если все получилось, то удаляем старый DST Root CA X3, чтобы сервер его не использовал.

для Centos, RHEL:

trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem

update-ca-trust

для Debial, Ubuntu:

sed -i 's/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf

update-ca-certificates

Если не получилось решить проблему самостоятельно, то стоит обратиться к своему систему администратору или поддержке сервера.