Использование сертификатов Минцифры в GigaChat
Для обмена сообщениями с GigaChat API нужен корневой сертификат Минцифры . Без него при попытке получить токен доступа с помощью запроса POST /api/v2/oauth или в процессе инициализации SDK, будет возвращаться ошибка валидации сертификата. Например:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
Вы можете установить сертификаты на уровне приложения или на уровне операционной системы.
Установка сертификатов на уровне приложения
Для автоматической установки сертификатов выполните команду:
curl -k "https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt" -w "\n" >> $(python -m certifi)
При выполнении команды сертификат скачивается и устанавливается автоматически. При переходе в новую виртуальную среду может понадобиться повторная установка сертификата.
Если вы используете библиотеки gigachat
или langchain-gigcachat
, вы можете указать путь к файлу сертификата в параметре ca_bundle_file
при инициализации:
from gigachat import GigaChat
giga = GigaChat(
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
model="GigaChat",
ca_bundle_file="/путь/к/файлу/russian_trusted_root_ca_pem.crt"
)
Подробнее о параметрах инициализации объекта GigaChat — в разделе Использование SDK.
Если вы используете 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, конвертируйте их в формат CRT с помощью команды:
openssl x509 -outform der -in название_сертификата.pem -out название_сертификата.crt
Примеры установки сертификатов в разных версиях 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
-
Обновите хранилища доверенных сертификатов от имени суперпользователя с помощью команды
update-ca-certificates
:sudo update-ca-certificates -v
-
Убедитесь, что сертификаты установлены успешно с помощью команды
trust list | grep Russian
.В случае успеха, ответ должен быть примерно таким:
label: Russian Trusted Root CA
label: Russian Trusted Sub CA
Следуйте инструкциям на портале Госуслуг в разделе Сертификаты для Linux.
-
Добавьте сертификат в хранилище доверенных сертификатов. Для этого от имени суперпользователя запустите команду
cp
, скопируйте файл с сертификатом в директорию/etc/ca-certificates/trust-source/anchors/
:sudo cp <path>/russiantrustedca.crt /etc/ca-certificates/trust-source/anchors/
-
Для обновления хранилища доверенных сертификатов от имени суперпользователя запустите команду
update-ca-trust
:sudo update-ca-trust
Установка сертификатов для соединений gRPC
Для обмена сообщениями нужно использовать сертификаты НУЦ Минцифры.
Для установки сертификатов:
-
Скачайте соответствующие вашему устройству сертификаты с портала Госуслуг .
-
Укажите путь к сертификату в переменной среды GRPC_DEFAULT_SSL_ROOTS_FILE_PATH:
export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH="/путь-к-сертификату/cert.pem"