OpenAI Mutual TLS позволяет организациям настроить дополнительный уровень безопасности для трафика 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
Часто задаваемые вопросы
Можно ли настроить mTLS через API?
Да — дополнительную информацию см. в справочнике API по адресу https://platform.openai.com/docs/api-reference/.
Какие конечные точки поддерживают mTLS?
В течение этого бета-периода mTLS официально поддерживается в
/v1/chat/completions (with all supported extensions e.g. image, audio, streaming, etc.)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (via server-side web sockets)/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 (https://platform.openai.com/settings/organization/admin-keys) также может получать доступ к сертификатам и изменять их, но учтите: если вы активируете Mutual TLS на уровне организации, сертификаты будут принудительно применяться и к этим API-запросам. Все изменения mTLS видны в журналах аудита.
Сколько сертификатов у меня может быть?
Каждая организация может загрузить до 50 сертификатов, которыми можно делиться между проектами, но не с другими организациями. Вы можете атомарно активировать или деактивировать сертификат для 10 проектов за раз. Либо вы можете активировать или деактивировать 10 сертификатов за раз для своей организации или для 1 конкретного проекта.
Можно ли обновлять или удалять сертификаты?
Вы можете обновлять имена своих сертификатов, но не их содержимое. Вы также можете удалять сертификаты, если они сейчас не активны ни в одной области действия.
Как работает отзыв сертификатов?
На данный момент мы не поддерживаем CRL или OCSP stapling. Рекомендуемая альтернатива — удалить или сменить ключ API. Вы также можете заменить свои сертификаты CA или использовать клиентские сертификаты с более короткими сроками действия.
Можно ли использовать цепочки сертификатов большей длины?
На данный момент мы поддерживаем только цепочки длиной в один сертификат — то есть ваш сертификат CA должен напрямую подписывать ваши клиентские сертификаты. Если у вас есть дополнительные вопросы, обратитесь к своему менеджеру по работе с аккаунтом.
Какая настройка рекомендуется?
При первоначальной настройке этой функции мы рекомендуем начать со staging-проекта, который не обслуживает официальный рабочий трафик. Используйте эту возможность, чтобы убедиться, что сертификаты правильно настроены на ваших машинах и что вы можете успешно отправлять API-трафик. Кроме того, мы рекомендуем проконсультироваться с командой безопасности вашей организации, чтобы лучше понять ваши потребности.
Дополнительная поддержка
Вы можете полностью самостоятельно управлять функцией mTLS через панель управления и API. Однако если вы хотите сначала включить mTLS в теневом режиме, обратитесь к своему менеджеру по работе с аккаунтом или откройте обращение в поддержку, начав новый чат в правом нижнем углу этой страницы.
Приложение: терминология
Сертификат CA: один из ваших доверенных сертификатов, который напрямую подписал ваши клиентские сертификаты, отправляемые вместе с запросами. Вы можете использовать самоподписанные сертификаты CA.
Загрузить сертификат: добавить сертификат CA в ваш аккаунт. Он пока нигде не применяется принудительно для mTLS, но вы можете начать его настраивать.
Область действия: конкретный проект или вся ваша организация.
Активировать сертификат CA в области действия: включает mTLS именно для этой области действия, и для всех запросов на основе ключей API потребуется клиентский сертификат, подписанный этим сертификатом CA.
Деактивировать сертификат CA в области действия: отключает использование этого сертификата для проверки запросов в этой области действия. Если в области действия не осталось сертификатов, mTLS фактически отключается.
Наследование сертификата: если вы активируете сертификат для своей организации, он также будет активирован для всех проектов.
