OpenAI Mutual TLS позволява на организациите да конфигурират допълнителен слой сигурност за своя API трафик към OpenAI. След конфигуриране 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 KB.
Изисквания за клиентски сертификат
Клиентските сертификати трябва да са директно подписани от сертификатите, които сте качили предварително. Към момента поддържаме само сертификатни вериги с единична дължина. Освен това клиентските ви сертификати трябва да отговарят на следните изисквания:
има разширенията 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 (с всички поддържани разширения, напр. изображение, аудио, стрийминг и др.)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (чрез уеб сокети от страна на сървъра)/v1/fine_tuning/v1/tunnels
Как да изпратя клиентски сертификати със заявката си?
За cURL заявка можете да използвате опциите --cert и --key (вижте man страницата тук). В повечето други HTTP клиенти също има начини за подаване на клиентски сертификати. Примери: requests в Python, fetch в js. Чрез официалните ни SDK-та поддържаме и замяна на HTTP клиента — вижте тук за пример с Python.
Преди да наложите mTLS за production трафик, уверете се, че HTTP клиентът, който използвате, работи коректно със заявки за клиентски сертификат (някои, като WebSockets в определени браузъри, не работят така). Имайте предвид, че нашият сървър не предоставя списък с certificate_authorities в заявката за клиентски сертификат list.
Кой може да има достъп до сертификатите и да ги променя?
Чрез таблото за управление на 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 проект, който не обслужва официален production трафик. Използвайте тази възможност, за да се уверите, че сертификатите ви са правилно настроени на машините ви и че можете успешно да изпращате API трафик. Освен това препоръчваме да се консултирате с екипа по сигурност на организацията си, за да разберете най-добре нуждите си.
Допълнителна поддръжка
Можете напълно самостоятелно да използвате функционалността mTLS чрез таблото за управление и API. Ако обаче искате първоначално да активирате mTLS в shadow mode, моля, свържете се с вашия Account Director или отворете заявка до поддръжката, като започнете нов чат в долния десен ъгъл на тази страница.
Приложение: Терминология
CA сертификат: Един от вашите доверени сертификати, който е подписал директно клиентските сертификати, които ще изпращате със заявките. Можете да използвате и самоподписани CA сертификати.
Качване на сертификат: добавяне на CA сертификат към акаунта ви. Той все още не се налага никъде за mTLS, но можете да започнете да го конфигурирате.
Обхват: конкретен проект или цялата ви организация.
Активиране на CA сертификат в даден обхват: активира mTLS конкретно за този обхват и всички заявки, базирани на API ключ, ще изискват клиентски сертификат, подписан от CA сертификата.
Деактивиране на CA сертификат в даден обхват: деактивира използването на този сертификат за проверка на заявки в този обхват. Ако не ви останат сертификати за този обхват, mTLS на практика е изключен.
Наследяване на сертификат: Ако активирате сертификат за организацията си, той ще бъде активиран и за всички проекти.
