Использование сертификатов НУЦ Минцифры в SaluteSpeech
Для обмена сообщениями с моделями SaluteSpeech нужно использовать публичный сертификат НУЦ Минцифры.
В противном случае, при выполнении запроса на получение токена доступа (POST /api/v2/oauth
) будет возвращаться ошибка:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
Вы можете установить сертификаты на уровне приложения или на уровне операционной системы.
Установка на уровне приложения
- Python
- JavaScript
Для установки сертификатов выполните команду:
curl -k "https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer" -w "\n" >> $(python -m certifi)
Если вы используете Node.JS, задайте сертификаты в переменной среды NODE_EXTRA_CA_CERTS:
const path = require('path')
process.env.NODE_EXTRA_CA_CERTS= path.resolve(__dirname, 'dir', 'with', 'certs')
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'
Установка на уровне ОС
ОС Windows и MacOS
Перейдите на портал Госуслуг, скачайте сертификат для вашей ОС и следуйте инструкциям по установке.
ОС Linux
Перейдите на портал Госуслуг и скачайте корневой и выпускающий сертификаты для Linux в формате .crt
.
Затем установите их на компьютер.
Если вы скачали сертификаты по прямой ссылке в формате .pem
, конвертируйте их с помощью команды:
openssl x509 -outform der -in russiantrustedca.pem -out russiantrustedca.crt
Примеры установки сертификата в разных версиях Linux
- Debian и Ubuntu
- RedHat Enterprise Linux 7
- Arch Linux
Создайте папку для хранения сертификатов:
sudo mkdir /usr/local/share/ca-certificates/russian-trusted
Скопируйте сертификаты в созданную папку:
sudo cp russian_trusted_root_ca_pem.crt russian_trusted_sub_ca_pem.crt /usr/local/share/ca-certificates/russian-trusted
Обновите хранилища доверенных сертификатов от имени суперпользователя:
sudo update-ca-certificates -v
Убедитесь, что сертификаты установлены успешно с помощью команды
trust list | grep Russian
.В случае успеха, ответ должен быть примерно таким:
label: Russian Trusted Root CA
label: Russian Trusted Sub CA
Запустите в терминале команду конвертации:
openssl x509 -outform der -in russiantrustedca.pem -out russiantrustedca.crt
Добавьте сертификат в хранилище доверенных сертификатов. Для этого от имени суперпользователя запустите команду
cp
, скопируйте файл с сертификатом в директорию/etc/pki/ca-trust/source/anchors/
:sudo cp <path>/russiantrustedca.crt /etc/pki/ca-trust/source/anchors/
Для обновления хранилища доверенных сертификатов от имени суперпользователя запустите команду:
sudo update-ca-trust
Запустите в терминале команду конвертации:
openssl x509 -outform der -in russiantrustedca.pem -out russiantrustedca.crt
Добавьте сертификат в хранилище доверенных сертификатов. Для этого от имени суперпользователя запустите команду
cp
, скопируйте файл с сертификатом в директорию/etc/ca-certificates/trust-source/anchors/
:sudo cp <path>/russiantrustedca.crt /etc/ca-certificates/trust-source/anchors/
Для обновления хранилища доверенных сертификатов от имени суперпользователя запустите команду:
sudo update-ca-trust
Установка сертификатов для соединений gRPC
Для установки сертификатов:
Скачайте подходящие сертификаты с портала Госуслуг.
Укажите путь к сертификату в переменной среды GRPC_DEFAULT_SSL_ROOTS_FILE_PATH:
export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH="/путь-к-сертификату/cert.pem"