OpenAI Mutual TLS 允許組織為其 OpenAI API 流量設定額外一層安全性。設定完成後,API 請求應傳送至 https://mtls.api.openai.com(歐盟資料駐留客戶則使用 https://mtls-eu.api.openai.com),且只有在提供正確的 API 金鑰和用戶端憑證時,流量才會被接受。mTLS 不適用於 https://platform.openai.com 儀表板。此功能目前處於 beta 階段。
我要如何設定 mTLS 整合?
在設定導覽列上,你會看到一個「Mutual TLS」分頁。
上傳憑證
啟用憑證
上傳憑證後,下一步是啟用你的憑證。一旦專案的憑證已啟用,所有前往該專案的 API 請求也會開始要求對應的用戶端憑證。如果專案啟用了多張憑證,你可以傳入任何對應的用戶端憑證。如果憑證已為組織啟用,它將套用至所有 API 請求,並由所有專案「繼承」。
CA 憑證要求
你可以上傳任何符合下列要求的 PEM 格式 X.509 CA 憑證:
直接簽署你計劃使用的用戶端憑證,或作為用戶端出示之有效憑證鏈的信任錨點。
具備 Certificate Authority、Subject Key Identifier 和 Authority Key Identifier(KeyIdentifier 格式)擴充功能
具備 Key Usage:「Certificate Sign, CRL Sign」權限
到期時間不得在 1 天內
憑證總大小必須小於 16kb。
用戶端憑證要求
如果你的組織已啟用憑證鏈支援,用戶端可以出示葉節點用戶端憑證,以及建立通往某個已啟用上傳憑證之有效憑證鏈所需的中繼憑證。否則,用戶端憑證必須由你事先上傳的憑證直接簽署。除此之外,你的用戶端憑證必須符合下列要求:
具備 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 的憑證鏈支援
憑證鏈支援可讓你的用戶端出示葉節點用戶端憑證,以及建立通往某個已啟用上傳憑證之有效憑證鏈所需的中繼憑證。
只要作為信任錨點的已啟用上傳憑證仍然有效,你就可以輪替中繼憑證,而不必上傳每個新的中繼憑證。
憑證鏈支援目前需申請才可使用。請聯絡你的客戶總監或提交支援工單,以申請存取權。
你的用戶端必須出示所有必要的中繼憑證。OpenAI 不會透過 AIA 擷取缺少的中繼憑證。仍不支援 CRL 和 OCSP 檢查。
常見問題
我可以透過 API 設定 mTLS 嗎?
可以 — 你可以在 https://platform.openai.com/docs/api-reference/ 查看 API 參考以取得更多資訊。
哪些端點支援 mTLS?
在此 beta 期間,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 page)。大多數其他 HTTP 用戶端也有傳遞用戶端憑證的方法。範例:Python 中的 requests、JS 中的 fetch。透過我們的官方 SDK,你也可以覆寫 HTTP 用戶端;Python 範例請見這裡。
啟用憑證鏈支援後,請設定你的 HTTP 用戶端,使其出示葉節點用戶端憑證以及所有必要的中繼憑證。確切設定取決於你的 HTTP 用戶端。
在對正式環境流量強制執行 mTLS 前,請確認你使用的 HTTP 用戶端能妥善處理用戶端憑證要求(有些用戶端不能,例如特定瀏覽器中的 WebSockets)。請注意,我們的伺服器不會在用戶端憑證要求中提供 certificate_authorities 清單。
誰可以存取和修改憑證?
透過 https://platform.openai.com/settings/organization/mtls 儀表板 UI,組織擁有者可以存取和修改憑證。任何擁有管理員 API 金鑰(https://platform.openai.com/settings/organization/admin-keys)的人也可以存取/修改憑證,但請注意 — 如果你在組織層級啟用 Mutual TLS,也會對這些 API 請求強制執行憑證。所有 mTLS 變更都會顯示在稽核記錄中。
我可以擁有多少張憑證?
每個組織最多可上傳 50 張憑證,這些憑證可在專案之間共用,但不能與其他組織共用。你一次可以原子性地為 10 個專案啟用/停用一張憑證。或者,你可以一次為你的組織或 1 個特定專案啟用/停用 10 張憑證。
我可以更新或刪除憑證嗎?
你可以更新憑證的名稱,但不能更新內容。如果憑證目前未在任何範圍中啟用,你也可以刪除該憑證。
憑證撤銷如何運作?
目前我們不支援 CRL 或 OCSP 檢查。建議的替代做法是改為刪除或輪替你的 API 金鑰。你也可以更換 CA 憑證,或使用有效期間較短的用戶端憑證。
我可以使用更長的憑證鏈嗎?
可以,前提是你的組織已啟用憑證鏈支援。你的用戶端必須出示葉節點用戶端憑證及任何必要的中繼憑證,讓 OpenAI 能將憑證鏈驗證到某個已啟用的上傳憑證。請聯絡你的客戶總監或提交支援工單,以申請存取權。
建議的設定是什麼?
初次設定此功能時,我們建議從不承載正式生產流量的預備專案開始。請利用這個機會確認憑證已正確設定在你的機器上,且你可以成功傳送 API 流量。除此之外,我們建議諮詢你組織的安全團隊,以最充分了解你的需求。
額外支援
你可以透過儀表板和 API 完全自助使用 mTLS 功能。不過,如果你一開始想以影子模式啟用 mTLS,請聯絡你的客戶總監,或在本頁右下角開始新的聊天以開立支援工單。
附錄:術語
CA 憑證:你信任的憑證之一,用於驗證用戶端憑證。它可以直接簽署你隨要求傳送的用戶端憑證,或作為用戶端出示之憑證鏈的信任錨點。你可以使用自我簽署的 CA 憑證。
上傳憑證:將 CA 憑證新增至你的帳戶。目前尚未在任何地方對 mTLS 強制執行,但你可以開始進行設定。
範圍:特定專案或你的整個組織。
在某個範圍啟用 CA 憑證:專門為該範圍啟用 mTLS,且所有以 API 金鑰為基礎的要求都必須包含可依據作用中 CA 憑證驗證的用戶端憑證。
在某個範圍停用 CA 憑證:停止使用此憑證來驗證該範圍內的要求。如果該範圍沒有任何憑證留下,mTLS 實際上就會關閉。
繼承憑證:如果你為組織啟用某個憑證,該憑證也會為所有專案啟用。
