Взаимный TLS OpenAI позволяет организациям настроить дополнительный уровень безопасности для трафика OpenAI API. После настройки API-запросы следует отправлять на https://mtls.api.openai.com (или https://mtls-eu.api.openai.com для клиентов с резидентностью данных в ЕС), и трафик будет приниматься только при наличии правильного API-ключа и клиентского сертификата. mTLS не применяется к панели управления https://platform.openai.com. Эта функция сейчас находится в бета-версии.
Как настроить интеграцию mTLS?
В панели навигации настроек вы увидите вкладку «Mutual TLS».
Загрузить сертификат
Активировать сертификат
После загрузки сертификата следующим шагом будет активация сертификата. Как только сертификат активирован для проекта, все API-запросы к этому проекту также будут требовать соответствующий клиентский сертификат. Если для проекта активировано несколько сертификатов, можно передать любой соответствующий клиентский сертификат. Если сертификат активирован для организации, он будет применяться ко всем API-запросам и «наследоваться» всеми проектами.
Требования к сертификату CA
Можно загрузить любой сертификат X.509 CA в формате PEM, который соответствует следующим требованиям:
напрямую подписывает клиентские сертификаты, которые вы планируете использовать для запросов
имеет расширения Certificate Authority, Subject Key Identifier и Authority Key Identifier (в формате KeyIdentifier)
имеет разрешения Key Usage: «Certificate Sign, CRL Sign»
срок его действия не истекает в течение 1 дня
общий размер сертификата должен быть менее 16 КБ.
Требования к клиентскому сертификату
Клиентские сертификаты должны быть напрямую подписаны сертификатами, которые вы заранее загрузили. На данный момент мы поддерживаем только цепочки сертификатов длиной в одно звено. Кроме того, ваши клиентские сертификаты должны соответствовать следующим требованиям:
имеет расширения Subject Key Identifier и Authority Key Identifier (в формате KeyIdentifier)
имеет разрешения Key Usage: «Digital Signature, Key Encipherment»
имеет разрешение Extended Key Usage: «TLS Web Client Authentication»
имеет расширение Subject Alternate Name
FAQ
Можно ли настроить mTLS через API?
Да — подробнее см. в справочнике API по адресу https://platform.openai.com/docs/api-reference/.
Какие конечные точки поддерживают mTLS?
В течение этого бета-периода mTLS официально поддерживается в
/v1/chat/completions (со всеми поддерживаемыми расширениями, например image, audio, streaming и т. д.)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (через серверные WebSocket-соединения)/v1/fine_tuning/v1/tunnels
Как отправить клиентские сертификаты вместе с запросом?
Для запроса cURL можно использовать параметры --cert и --key (см. man-страницу здесь). В большинстве других HTTP-клиентов также есть способы передавать клиентские сертификаты. Примеры: requests в Python, fetch в JS. В наших официальных SDK мы также поддерживаем переопределение HTTP-клиента — пример для Python см. здесь.
Прежде чем включать обязательный mTLS для производственного трафика, убедитесь, что используемый вами HTTP-клиент корректно работает с запросами клиентских сертификатов (некоторые, например WebSockets в определённых браузерах, — нет). Обратите внимание, что наш сервер не предоставляет список certificate_authorities в запросе клиентского сертификата.
Кто может просматривать и изменять сертификаты?
Через интерфейс панели управления https://platform.openai.com/settings/organization/mtls доступ к сертификатам и их изменение могут выполнять владельцы организации. Любой пользователь с Admin API Key (https://platform.openai.com/settings/organization/admin-keys) также может получать доступ к сертификатам и изменять их, однако учтите: если вы активируете Mutual TLS на уровне организации, сертификаты станут обязательными и для этих API-запросов. Все изменения mTLS видны в журналах аудита.
Сколько сертификатов можно иметь?
Каждая организация может загрузить до 50 сертификатов, которые можно использовать совместно между проектами, но не с другими организациями. Можно атомарно активировать/деактивировать сертификат сразу для 10 проектов. Либо можно активировать/деактивировать сразу 10 сертификатов для вашей организации или для 1 конкретного проекта.
Можно ли обновлять или удалять сертификаты?
Можно обновлять названия сертификатов, но не их содержимое. Вы также можете удалять сертификаты, если они сейчас не активны ни в одной области применения.
Как работает отзыв сертификатов?
На данный момент мы не поддерживаем CRL или OCSP stapling. Вместо этого рекомендуется удалить или ротировать API-ключ. Также можно заменить ваши сертификаты CA или использовать клиентские сертификаты с более коротким сроком действия.
Можно ли использовать более длинные цепочки сертификатов?
На данный момент мы поддерживаем только однозвенные цепочки — то есть ваш сертификат CA должен напрямую подписывать клиентские сертификаты. Если у вас остались вопросы, обратитесь к своему Account Director.
Какая конфигурация рекомендуется?
При первоначальной настройке этой функции мы рекомендуем начать с staging-проекта, который не обслуживает официальный производственный трафик. Используйте эту возможность, чтобы убедиться, что сертификаты правильно настроены на ваших машинах и что вы можете успешно отправлять API-трафик. Кроме того, мы рекомендуем проконсультироваться с командой безопасности вашей организации, чтобы лучше понять ваши потребности.
Дополнительная поддержка
Вы можете полностью самостоятельно управлять функцией mTLS через панель управления и API. Однако если вы хотите сначала включить mTLS в теневом режиме, обратитесь к своему Account Director или создайте запрос в поддержку, начав новый чат в правом нижнем углу этой страницы.
Приложение: терминология
Сертификат CA: один из ваших доверенных сертификатов, который напрямую подписал клиентские сертификаты, отправляемые вами вместе с запросами. Можно использовать самоподписанные сертификаты CA.
Загрузить сертификат: добавить сертификат CA в свою учётную запись. Он пока нигде не принудительно применяется для mTLS, но вы уже можете начать его настраивать.
Область применения: конкретный проект или вся ваша организация.
Активировать сертификат CA в области применения: включает mTLS для этой конкретной области, и все запросы на основе API-ключа будут требовать клиентский сертификат, подписанный этим сертификатом CA.
Деактивировать сертификат CA в области применения: отключает использование этого сертификата для проверки запросов в данной области. Если для этой области не осталось сертификатов, mTLS фактически отключается.
Наследование сертификата: если вы активируете сертификат для своей организации, он также будет активирован для всех проектов.
