Convalida della catena di certificati

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

Questo documento spiega come convalidare una catena di certificati prima di caricare il certificato in un keystore o in un truststore in Apigee Edge. La procedura si basa sul OpenSSL per convalidare la catena di certificati ed è applicabile a qualsiasi ambiente in cui è disponibile OpenSSL.

Prima di iniziare

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

  • Se non hai dimestichezza con una catena di certificati, leggi Catena di attendibilità.
  • Se non hai dimestichezza con la libreria OpenSSL, leggi OpenSSL.
  • Se vuoi utilizzare gli esempi della riga di comando in questa guida, installa o aggiorna all'ultima versione del client OpenSSL.
  • Assicurati che i certificati siano in formato PEM. Se i certificati non sono in formato PEM, utilizza le istruzioni riportate in Conversione dei certificati in formato supportato per convertirli in formato PEM.

Convalida dell'oggetto e dell'emittente del certificato per l'intera catena

Per convalidare la catena di certificati utilizzando i comandi OpenSSL, completa i passaggi descritti nelle sezioni seguenti:

Suddivisione della catena di certificati

Prima di convalidare il certificato, devi dividere la catena di certificati in certificati separati seguendo questi passaggi:

  1. Accedi al server in cui esiste il client OpenSSL.
  2. Dividi la catena di certificati nei seguenti certificati (se non l'hai già fatto):
    • Certificato entità: entity.pem
    • Certificato intermedio: intermediate.pem
    • Certificato radice: root.pem

La figura seguente mostra un esempio di catena di certificati:

flusso della catena di certificati: certificato di identità, certificato intermedio, certificato radice

Verifica dell'oggetto e dell'emittente del certificato

Questa sezione descrive come ottenere l'oggetto e l'emittente dei certificati e verificare che si disponga di una catena di certificati valida.

  1. Esegui il seguente OpenSSL comando per ottenere Subject e Issuer per ogni certificato nella catena da entity a root e verificare che formino una catena di certificati corretta:
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    Dove certificate è il nome del certificato.

  2. Verifica che i certificati nella catena rispettino le seguenti linee guida:
    • Subject di ogni certificato corrisponde a Issuer del certificato precedente nella catena (ad eccezione del certificato Entity).
    • Subject e Issuer sono uguali per il certificato radice.

    Se i certificati nella catena rispettano queste linee guida, la catena di certificati è considerata completa e valida.

    Esempio di convalida della catena di certificati

    L'esempio seguente mostra l'output dei comandi OpenSSL per una catena di certificati di esempio contenente tre certificati:

    Certificato entità

    openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):'
    
    Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1
    Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
            

    Certificato intermedio

    openssl x509 -text -in intermediate.pem  | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
            

    Certificato radice

    openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
            

    Nell'esempio mostrato sopra, nota quanto segue:

    • Il Subject del certificato intermedio corrisponde al Issuer del certificato dell'entità.
    • Il Subject del certificato radice corrisponde al Issuer del certificato intermedio.
    • Subject e Issuer sono uguali nel certificato radice.

    Dall'esempio precedente, puoi verificare che la catena di certificati di esempio è valida.

Verifica dell'hash dell'oggetto e dell'emittente del certificato

Questa sezione spiega come ottenere l'hash dell'oggetto e dell'emittente dei certificati e verificare di avere una catena di certificati valida.

È sempre una buona pratica verificare la sequenza di hash dei certificati, in quanto può aiutare a identificare problemi come il nome comune (CN) del certificato con spazi o caratteri speciali indesiderati.

  1. Esegui il seguente OpenSSL comando per ottenere la hash sequenza per ogni certificato nella catena da entity a root e verificare che formino una catena di certificati corretta.
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    Dove certificate è il nome del certificato.

  3. Verifica che i certificati nella catena rispettino le seguenti linee guida:
    • Subject di ogni certificato corrisponde a Issuer del certificato precedente nella catena (ad eccezione del certificato Entity).
    • Subject e Issuer sono uguali per il certificato radice.

    Se i certificati nella catena rispettano queste linee guida, la catena di certificati è considerata completa e valida.

    Esempio di convalida della catena di certificati tramite sequenza di hash

    L'esempio seguente mostra l'output dei comandi OpenSSL per una catena di certificati di esempio contenente tre certificati:

    openssl x509 -in entity.pem -hash -issuer_hash -noout
    c54c66ba #this is subject hash
    99bdd351 #this is issuer hash
        
    openssl x509 -in intermediate.pem -hash -issuer_hash -noout
    99bdd351
    4a6481c9
        
    openssl x509 -in root.pem -hash -issuer_hash -noout
    4a6481c9
    4a6481c9
        

    Nell'esempio mostrato sopra, nota quanto segue:

    • Il subject hash del certificato intermedio corrisponde al issuer hash del certificato dell'entità.
    • subject hash del certificato radice corrisponde a issuer hash del certificato dell'emittente.
    • subject e issuer hash sono uguali nel certificato radice.

    Dall'esempio precedente, puoi verificare che la catena di certificati di esempio è valida.

Verifica della scadenza del certificato

Questa sezione spiega come verificare se tutti i certificati nella catena sono scaduti utilizzando i seguenti metodi:

  • Recupera la data di inizio e di fine del certificato.
  • Recupera lo stato di scadenza.

Data di inizio e di fine

Esegui il seguente comando OpenSSL per ottenere la data di inizio e di fine per ogni certificato nella catena da entity a root e verificare che tutti i certificati nella catena siano in vigore (la data di inizio è precedente a oggi) e non siano scaduti.

Esempio di convalida della scadenza del certificato tramite date di inizio e di fine

openssl x509 -startdate -enddate -noout -in entity.pem
notBefore=Feb  6 21:57:21 2020 GMT
notAfter=Feb  4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem
notBefore=Jun 15 00:00:42 2017 GMT
notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem
notBefore=Apr 13 10:00:00 2011 GMT
notAfter=Apr 13 10:00:00 2022 GMT

Stato scadenza

Esegui il seguente OpenSSL comando per verificare se il certificato è già scaduto o scadrà nei prossimi N seconds. Questo comando restituisce lo stato di scadenza del certificato nel contesto della data di sistema corrente.

openssl x509 -checkend <N Seconds> -noout -in certificate

Dove certificate è il nome del certificato.

Esempio di convalida della scadenza del certificato tramite l'opzione checkend

Il seguente comando utilizza 0 seconds per verificare se il certificato è già scaduto o meno:

openssl x509 -checkend 0 -noout -in entity.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem
Certificate will not expire

In questo esempio, il messaggio Certificate will not expire indica che il certificato non è ancora scaduto.