phone

Особенности использования TLS-сертификатов, выданных Министерством цифрового развития РФ

2 февраля 2023
611

В России появилась интересное нововведение, которое начало действовать с 2023 года. Это касается сертификатов TLS. Государственные службы или ведомства вводят использование TLS-сертификатов, выданных Министерством цифрового развития РФ. Это цифровой объект, который позволяет проверять личность и устанавливать зашифрованное соединение с помощью протокола Transport Layer Security (TLS).

Работает эта система на практике следующим образом:

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

Корневые сертификаты уже хранятся в операционных системах и браузерах. Российских компаний среди выпускающих TLS-сертификаты никогда не было и сейчас тоже нет.

В итоге мы получаем ситуацию, когда сайты переключатся на сертификаты, выпущенные Минцифрой, они не будут работать, пока корневые сертификаты Минцифры не будут добавлены в доверенные хранилища сертификатов.

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

Как решить этот вопрос?

1. Проверить сервер клиента определенной командой по типу:

# curl https://3dsecmt.sberbank.ru/payment/webservices/merchant-ws?wsdl

Если корневые сертификаты стоят, выскочит XML-ка — значит, все в порядке. Если сертификатов нет, то отобразится ошибка типа:

curl: (60) Peer's certificate issuer has been marked as not trusted by the user.

Решение проблемы — установить сертификаты.

2. Скачиваем таким образом архив:

https://3dsec.sberbank.ru/techportal/lib/exe/fetch.php/certificates:add:cert.rar

Там нам нужен файл Cert_CA.pem, содержимое ставим на сервер клиента в файл: /etc/pki/ca-trust/source/anchors/sber.pem

3. Когда новые сертификаты сохранились, приступаем к запусканию команды:

# update-ca-trust

4. Чтобы проверить, установились ли нужные сертификаты, нужно ввести команду:

# trust list | grep "Sber"

Вывод должен быть:

label: SberCA Ext
label: SberCA Root Ext
label: SberCA Ext Web

А также командой:

# trust list | grep "Russian"

Вывод должен быть:

label: Russian Trusted Sub CA
label: Russian Trusted Root CA

5. Еще можно перезапустить команду из пункта 1 и увидеть XML вместо ошибки.

Теперь вы знаете о новом правиле и вооружены цифровыми технологиями:)