OpenAI Mutual TLS consente alle organizzazioni di configurare un ulteriore livello di sicurezza per il traffico della loro API OpenAI. Una volta configurato, le richieste API devono essere effettuate a https://mtls.api.openai.com (o a https://mtls-eu.api.openai.com per i clienti con residenza dei dati nell’UE) e il traffico sarà accettato solo se vengono forniti la chiave API e il certificato client corretti. mTLS non si applica alla dashboard https://platform.openai.com. Questa funzionalità è attualmente in beta.
Come configuro l’integrazione mTLS?
Nella barra di navigazione delle impostazioni vedrai una scheda «TLS reciproco».
Carica certificato
Attiva certificato
Dopo aver caricato il certificato, il passaggio successivo è attivare il certificato. Una volta che un certificato è attivato per un progetto, tutte le richieste API dirette a quel progetto inizieranno a richiedere anche un certificato client corrispondente. Se un progetto ha più certificati attivati, puoi passare qualsiasi certificato client corrispondente. Se un certificato è attivato per l’organizzazione, si applicherà a tutte le richieste API e sarà “ereditato” da tutti i progetti.
Requisiti dei certificati CA
Puoi caricare qualsiasi certificato CA X.509 in formato PEM che soddisfi i seguenti requisiti:
firma direttamente i certificati client con cui prevedi di effettuare richieste
ha le estensioni Certificate Authority, Subject Key Identifier e Authority Key Identifier (in formato KeyIdentifier)
ha le autorizzazioni Key Usage: «Certificate Sign, CRL Sign»
non è impostato per scadere entro 1 giorno
la dimensione totale del certificato deve essere inferiore a 16 KB.
Requisiti dei certificati client
I certificati client devono essere firmati direttamente dai certificati che hai caricato in anticipo. Al momento supportiamo solo catene di certificati di lunghezza singola. Oltre a questo, i certificati client devono soddisfare i seguenti requisiti:
ha le estensioni Subject Key Identifier e Authority Key Identifier (in formato KeyIdentifier)
ha le autorizzazioni Key Usage: «Digital Signature, Key Encipherment»
ha l’autorizzazione Extended Key Usage: «TLS Web Client Authentication»
ha l’estensione Subject Alternate Name
Domande frequenti
Posso configurare mTLS tramite API?
Sì: puoi consultare il Riferimento API all’indirizzo https://platform.openai.com/docs/api-reference/ per ulteriori informazioni.
Quali endpoint supportano mTLS?
Durante questo periodo beta, mTLS è supportato ufficialmente in
/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
Come invio i certificati client con la mia richiesta?
Per una richiesta cURL, puoi usare le opzioni --cert e --key (vedi la pagina man qui). Anche nella maggior parte degli altri client HTTP esistono modi per passare i certificati client. Esempi: requests in Python, fetch in JS. Tramite i nostri SDK ufficiali supportiamo anche la sostituzione del client HTTP: vedi qui per un esempio in Python.
Prima di applicare mTLS al traffico di produzione, assicurati che il client HTTP che stai usando si comporti correttamente con le richieste di certificati client (alcuni, come i WebSocket in determinati browser, non lo fanno). Tieni presente che il nostro server non fornisce un elenco certificate_authorities nella richiesta del certificato client.
Chi può accedere ai certificati e modificarli?
Tramite l’interfaccia utente della dashboard https://platform.openai.com/settings/organization/mtls, i proprietari dell’organizzazione possono accedere ai certificati e modificarli. Chiunque disponga di una chiave API amministratore (https://platform.openai.com/settings/organization/admin-keys) può accedere ai certificati e modificarli; tuttavia fai attenzione: se attivi Mutual TLS a livello di organizzazione, imporrai i certificati anche a queste richieste API. Tutte le modifiche mTLS sono visibili nei log di audit.
Quanti certificati posso avere?
Ogni organizzazione può caricare fino a 50 certificati, che possono essere condivisi tra progetti ma non con altre organizzazioni. Puoi attivare/disattivare atomicamente un certificato per 10 progetti alla volta. In alternativa, puoi attivare/disattivare 10 certificati alla volta per la tua organizzazione o per 1 progetto specifico.
Posso aggiornare o eliminare i certificati?
Puoi aggiornare i nomi dei tuoi certificati, ma non il contenuto. Puoi anche eliminare i certificati se non sono attualmente attivi in alcun ambito.
Come funziona la revoca dei certificati?
Al momento non supportiamo CRL né OCSP stapling. L’alternativa consigliata è eliminare o ruotare invece la tua chiave API. Puoi anche sostituire i tuoi certificati CA o usare certificati client con periodi di validità più brevi.
Posso usare catene di certificati più lunghe?
Al momento supportiamo solo catene di lunghezza singola, cioè il tuo certificato CA deve firmare direttamente i tuoi certificati client. Contatta il tuo Account Director se hai altre domande.
Qual è la configurazione consigliata?
Quando configuri inizialmente questa funzionalità, ti consigliamo di iniziare con un progetto di staging che non gestisca traffico di produzione ufficiale. Sfrutta questa occasione per assicurarti che i certificati siano configurati correttamente sulle tue macchine e che tu possa inviare traffico API con successo. Oltre a questo, consigliamo di consultare il team di sicurezza della tua organizzazione per comprendere al meglio le tue esigenze.
Supporto aggiuntivo
Puoi gestire autonomamente la funzionalità mTLS tramite la dashboard e l’API. Tuttavia, se vuoi abilitare inizialmente mTLS in modalità shadow, contatta il tuo Account Director oppure apri un ticket di supporto avviando una nuova chat nell’angolo in basso a destra di questa pagina.
Appendice: terminologia
Certificato CA: uno dei tuoi certificati attendibili che ha firmato direttamente i certificati client che invierai con le richieste. Puoi usare certificati CA autofirmati.
Caricare un certificato: aggiungere un certificato CA al tuo account. Non viene ancora applicato da nessuna parte per mTLS, ma puoi iniziare a configurarlo.
Ambito: un progetto specifico o l’intera organizzazione.
Attivare un certificato CA in un ambito: abilita mTLS specificamente per quell’ambito e tutte le richieste basate su chiave API dovranno richiedere un certificato client firmato dal certificato CA.
Disattivare un certificato CA in un ambito: disabilita l’uso di questo certificato per verificare le richieste in questo ambito. Se non restano certificati per l’ambito, mTLS viene di fatto disattivato.
Ereditare un certificato: se attivi un certificato per la tua organizzazione, verrà attivato anche per tutti i progetti.
