OpenAI Mutual TLS により、組織は OpenAI API トラフィックに追加のセキュリティレイヤーを設定できます。設定後、API リクエストは https://mtls.api.openai.com(EU データレジデンシーのお客様は https://mtls-eu.api.openai.com)に送信する必要があり、正しい API キーとクライアント証明書が提供された場合にのみトラフィックが受け付けられます。mTLS は https://platform.openai.com ダッシュボードには適用されません。この機能は現在ベータ版です。
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 日以内に有効期限が切れる設定ではない
証明書の合計サイズが 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 拡張がある
API mTLS の証明書チェーンサポート
証明書チェーンのサポートにより、クライアントは、アクティブなアップロード済み証明書までの有効なチェーンを構築するために必要な中間証明書とともに、リーフクライアント証明書を提示できます。
これにより、トラストアンカーとして使用するアクティブなアップロード済み証明書が有効である限り、新しい中間証明書をその都度アップロードしなくても、中間証明書をローテーションできます。
証明書チェーンのサポートは現在、リクエストに応じて利用できます。アクセスをリクエストするには、Account Director に連絡するか、サポートチケットを作成してください。
クライアントは、必要なすべての中間証明書を提示する必要があります。OpenAI は、不足している中間証明書を AIA 経由で取得しません。CRL チェックと OCSP チェックは引き続きサポートされていません。
FAQ
API 経由で mTLS を設定できますか?
はい。詳細については、https://platform.openai.com/docs/api-reference/ の API リファレンスを参照してください。
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 クライアントでも、クライアント証明書を渡す方法があります。例: Python の requests、JavaScript の fetch。公式 SDK では HTTP クライアントの上書きにも対応しています。Python の例はこちらを参照してください。
証明書チェーンのサポートが有効になっている場合は、リーフクライアント証明書と必要なすべての中間証明書を提示するように HTTP クライアントを設定してください。具体的な設定は、ご利用の HTTP クライアントによって異なります。
本番トラフィックに mTLS を適用する前に、使用している HTTP クライアントがクライアント証明書要求に適切に対応することを確認してください(一部のブラウザーの WebSockets など、対応しないものもあります)。当社のサーバーは、クライアント証明書要求で certificate_authorities リストを提供しない点に注意してください。
証明書にアクセスして変更できるのは誰ですか?
https://platform.openai.com/settings/organization/mtls ダッシュボード UI から、組織のオーナーが証明書にアクセスし、変更できます。Admin API Key(https://platform.openai.com/settings/organization/admin-keys)を持つユーザーも証明書にアクセス/変更できます。ただし注意してください。組織レベルで Mutual TLS を有効化すると、これらの API リクエストにも証明書が強制されます。mTLS に関するすべての変更は監査ログに表示されます。
証明書はいくつ持てますか?
各組織は最大 50 件の証明書をアップロードできます。証明書はプロジェクト間で共有できますが、他の組織とは共有できません。一度に 10 件のプロジェクトについて、証明書をアトミックに有効化/無効化できます。また、組織または特定の 1 件のプロジェクトについて、一度に 10 件の証明書を有効化/無効化できます。
証明書を更新または削除できますか?
証明書の名前は更新できますが、内容は更新できません。どのスコープでも現在有効になっていない証明書は削除することもできます。
証明書の失効はどのように機能しますか?
現時点では、CRL チェックまたは OCSP チェックには対応していません。代わりに API キーを削除またはローテーションすることをおすすめします。CA 証明書を差し替えることも、有効期間の短いクライアント証明書を使用することもできます。
より長い証明書チェーンを使用できますか?
はい。組織で証明書チェーンのサポートが有効になっている場合は使用できます。OpenAI がアクティブなアップロード済み証明書までのチェーンを検証できるように、クライアントはリーフクライアント証明書と必要な中間証明書を提示する必要があります。アクセスをリクエストするには、Account Director に連絡するか、サポートチケットを作成してください。
推奨設定
この機能を最初に設定する際は、正式な本番トラフィックを処理しないステージングプロジェクトから始めることをお勧めします。この機会に、証明書がマシン上で適切に設定されていることと、API トラフィックを正常に送信できることを確認してください。これに加えて、ニーズを最もよく理解するために、組織のセキュリティチームに相談することをお勧めします。
追加サポート
mTLS 機能は、ダッシュボードと API から完全にセルフサービスで利用できます。ただし、まず mTLS をシャドウモードで有効にしたい場合は、アカウントディレクターに連絡するか、このページ右下の新しいチャットからサポートチケットを開いてください。
付録: 用語
CA 証明書: クライアント証明書の検証に使用する、信頼済み証明書の 1 つです。リクエストで送信するクライアント証明書に直接署名することも、クライアントが提示する証明書チェーンのトラストアンカーになることもできます。自己署名 CA 証明書を使用できます。
証明書のアップロード: アカウントに CA 証明書を追加することです。mTLS ではまだどこにも適用されませんが、設定を開始できます。
スコープ: 特定のプロジェクト、または組織全体です。
スコープでの CA 証明書の有効化: そのスコープに対して mTLS を有効にし、API キーを使用するすべてのリクエストに、アクティブな CA 証明書で検証できるクライアント証明書の添付が必要になります。
スコープでの CA 証明書の無効化: そのスコープでリクエストを検証するためにこの証明書を使用しないようにします。そのスコープに証明書が残っていない場合、mTLS は実質的にオフになります。
証明書の継承: 組織に対して証明書を有効化すると、すべてのプロジェクトでも有効化されます。
