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
Вы можете загрузить любой сертификат CA X.509 в формате 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
Поддержка цепочек сертификатов для API mTLS
Поддержка цепочек сертификатов позволяет вашему клиенту предъявлять конечный клиентский сертификат вместе с промежуточными сертификатами, необходимыми для построения действительной цепочки до активного загруженного сертификата.
Это позволяет ротировать промежуточные сертификаты без загрузки каждого нового промежуточного сертификата, если активный загруженный сертификат, используемый как якорь доверия, остается действительным.
Поддержка цепочек сертификатов сейчас доступна по запросу. Чтобы запросить доступ, свяжитесь с вашим Account Director или откройте обращение в службу поддержки.
Ваш клиент должен предъявить все необходимые промежуточные сертификаты. OpenAI не получает недостающие промежуточные сертификаты через AIA. Проверки CRL и OCSP по-прежнему не поддерживаются.
Часто задаваемые вопросы
Можно ли настроить 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 (см. справочную страницу здесь). В большинстве других HTTP-клиентов также есть способы передавать клиентские сертификаты. Примеры: requests в Python, fetch в JS. В наших официальных SDK мы также поддерживаем переопределение HTTP-клиента — пример для Python см. здесь.
Если поддержка цепочек сертификатов включена, настройте HTTP-клиент так, чтобы он предъявлял конечный клиентский сертификат и все необходимые промежуточные сертификаты. Точная конфигурация зависит от вашего HTTP-клиента.
Прежде чем включать обязательный 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. В качестве альтернативы рекомендуется удалить или ротировать API-ключ. Вы также можете заменить сертификаты CA или использовать клиентские сертификаты с более коротким сроком действия.
Можно ли использовать более длинные цепочки сертификатов?
Да, если для вашей организации включена поддержка цепочек сертификатов. Ваш клиент должен предъявить конечный клиентский сертификат и все необходимые промежуточные сертификаты, чтобы OpenAI могла проверить цепочку до активного загруженного сертификата. Чтобы запросить доступ, свяжитесь с вашим Account Director или откройте обращение в службу поддержки.
Какая настройка рекомендуется?
При первоначальной настройке этой функции мы рекомендуем начать со staging-проекта, который не обслуживает официальный рабочий трафик. Используйте эту возможность, чтобы убедиться, что сертификаты правильно настроены на ваших машинах и что вы можете успешно отправлять API-трафик. Кроме того, мы рекомендуем проконсультироваться с командой безопасности вашей организации, чтобы лучше понять ваши потребности.
Дополнительная поддержка
Вы можете полностью самостоятельно управлять функцией mTLS через панель управления и API. Однако если вы хотите сначала включить mTLS в теневом режиме, обратитесь к своему менеджеру по работе с аккаунтом или откройте обращение в поддержку, начав новый чат в правом нижнем углу этой страницы.
Приложение: терминология
Сертификат CA: один из ваших доверенных сертификатов, используемых для проверки клиентских сертификатов. Он может напрямую подписывать клиентские сертификаты, которые вы отправляете вместе с запросами, или служить якорем для цепочки сертификатов, предъявляемой вашим клиентом. Вы можете использовать самоподписанные сертификаты CA.
Загрузка сертификата: добавление сертификата CA в вашу учетную запись. Он пока нигде не применяется для mTLS принудительно, но вы уже можете начать его настраивать.
Область действия: конкретный проект или вся ваша организация.
Активация сертификата CA в области действия: включает mTLS именно для этой области действия, и все запросы на основе API-ключей должны включать клиентский сертификат, который можно проверить по активному сертификату CA.
Деактивация сертификата CA в области действия: отключает использование этого сертификата для проверки запросов в данной области действия. Если для области действия не осталось сертификатов, mTLS фактически отключается.
Наследование сертификата: если вы активируете сертификат для организации, он также будет активирован для всех проектов.
