Convalida dello scopo del certificato

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Questo documento spiega come convalidare lo scopo di un certificato prima di caricarlo in un keystore o in un truststore. La procedura si basa su OpenSSL per la convalida ed è applicabile a qualsiasi ambiente in cui è disponibile OpenSSL.

I certificati TLS vengono in genere emessi con uno o più scopi per cui possono essere utilizzati. In genere, questa operazione viene eseguita per limitare il numero di operazioni per cui è possibile utilizzare una chiave pubblica contenuta nel certificato. Lo scopo del certificato è disponibile nelle seguenti estensioni del certificato:

  • Utilizzo della chiave
  • Utilizzo esteso della chiave

Utilizzo della chiave

L'estensione di utilizzo della chiave definisce lo scopo (ad esempio, crittografia, firma o firma del certificato) della chiave contenuta nel certificato. Se la chiave pubblica viene utilizzata per l'autenticazione dell'entità, l'estensione del certificato deve avere l'utilizzo della chiave Firma digitale.

Le diverse estensioni di utilizzo della chiave disponibili per un certificato TLS creato utilizzando la procedura dell'autorità di certificazione (CA) sono le seguenti:

  • Firma digitale
  • Non ripudio
  • Crittografia chiave
  • Crittografia dati
  • Accordo su chiavi
  • Firma del certificato
  • Firma CRL
  • Solo crittografia
  • Solo decrittazione

Per saperne di più su queste estensioni di utilizzo della chiave, consulta RFC5280, Key Usage.

Utilizzo esteso della chiave

Questa estensione indica uno o più scopi per cui la chiave pubblica certificata può essere utilizzata, in aggiunta o in sostituzione degli scopi di base indicati nell'estensione di utilizzo della chiave. In generale, questa estensione viene visualizzata solo nei certificati dell'entità finale.

Di seguito sono riportate alcune estensioni di utilizzo esteso della chiave comuni:

  • TLS Web server authentication
  • TLS Web client authentication
  • anyExtendedKeyUsage

Una chiave estesa può essere critica o non critica.

  • Se l'estensione è critica, il certificato deve essere utilizzato solo per lo scopo o gli scopi indicati. Se il certificato viene utilizzato per un altro scopo, viola le norme di certificazione.
  • Se l'estensione è non critica, indica che lo scopo o gli scopi previsti della chiave sono informativi e non implica che la CA limiti l'utilizzo della chiave allo scopo indicato. Tuttavia, le applicazioni che utilizzano i certificati potrebbero richiedere che venga indicato uno scopo specifico affinché il certificato sia accettabile.

Se un certificato contiene sia il campo di utilizzo della chiave sia il campo di utilizzo esteso della chiave come critici, entrambi i campi devono essere elaborati in modo indipendente e il certificato può essere utilizzato solo per uno scopo che soddisfi entrambi i valori di utilizzo della chiave. Tuttavia, se non esiste uno scopo che possa soddisfare entrambi i valori di utilizzo della chiave, il certificato non deve essere utilizzato per nessuno scopo.

Quando acquisti un certificato, assicurati che abbia l'utilizzo della chiave corretto definito per soddisfare i requisiti per i certificati client o server senza i quali l'handshake TLS non andrebbe a buon fine.

Scopo Utilizzo della chiave

(obbligatorio)

Utilizzo esteso della chiave

(facoltativo)

Certificato dell'entità server utilizzato nel keystore dell'host virtuale di Apigee Edge
  • Firma digitale
  • Crittografia chiave o accordo su chiavi
Autenticazione del server web TLS
Certificato dell'entità client utilizzato nel truststore dell'host virtuale di Apigee Edge
  • Firma digitale o accordo su chiavi
Autenticazione del client web TLS
Certificato dell'entità server utilizzato nel truststore del server di destinazione di Apigee Edge
  • Firma digitale
  • Crittografia chiave o accordo su chiavi
Autenticazione del server web TLS
Certificato dell'entità client utilizzato nel keystore del server di destinazione di Apigee Edge
  • Firma digitale o accordo su chiavi
Autenticazione del client web TLS
Certificati intermedi e radice
  • Firma del certificato
  • Firma dell'elenco revoche certificati (CRL)

Prima di iniziare

Prima di seguire i passaggi descritti in questo documento, assicurati di comprendere i seguenti argomenti:

  • Se non hai familiarità con una catena di certificati, leggi Catena di attendibilità.
  • Se non hai familiarità con la libreria OpenSSL, leggi OpenSSL
  • Se vuoi saperne di più sulle estensioni di utilizzo della chiave e sull'utilizzo esteso della chiave, leggi RFC5280.
  • Se vuoi utilizzare gli esempi della riga di comando in questa guida, installa o aggiorna alla versione più recente del client OpenSSL.
  • Assicurati che i certificati siano in formato PEM e, in caso contrario, convertili in formato PEM.

Convalidare lo scopo del certificato

Questa sezione descrive i passaggi utilizzati per convalidare lo scopo del certificato.

  1. Accedi al server in cui è presente OpenSSL.
  2. Per ottenere l'utilizzo della chiave di un certificato, esegui il seguente comando OpenSSL:
    openssl x509 -noout -ext keyUsage < certificate

    Dove certificate è il nome del certificato.

    Esempio di output

    openssl x509 -noout -ext keyUsage < entity.pem
    X509v3 Key Usage: critical
        Digital Signature, Key Encipherment
    
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  3. Se l'utilizzo di una chiave è obbligatorio, verrà definito come critico come segue:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  4. Esegui il seguente comando per ottenere l'utilizzo esteso della chiave per un certificato. Se l'utilizzo esteso della chiave non è definito come critico, si tratta di una raccomandazione e non di un obbligo.
    openssl x509 -noout -ext extendedKeyUsage < certificate

    Dove certificate è il nome del certificato.

    Esempio di output

    openssl x509 -noout -ext extendedKeyUsage < entity.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
    
    openssl x509 -noout -ext extendedKeyUsage < intermediate.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication