Convalida della catena di certificati

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Questo documento spiega come convalidare una catena di certificati prima di caricare il certificato su un archivio chiavi o un archivio attendibilità in Apigee Edge. Il processo si basa Toolkit OpenSSL per convalidare il certificato ed è applicabile a qualsiasi ambiente in cui è disponibile OpenSSL.

Prima di iniziare

Prima di seguire la procedura descritta in questo documento, assicurati di aver compreso i seguenti argomenti:

  • Se non hai familiarità con una catena di certificati, leggi Catena di fiducia.
  • Se non hai familiarità con la libreria OpenSSL, leggi OpenSSL.
  • Per utilizzare gli esempi a riga di comando presenti in questa guida, installa o esegui l'aggiornamento alla l'ultima versione del client OpenSSL.
  • Assicurati che i certificati siano in formato PEM. Se i certificati non sono in formato PEM, segui le istruzioni fornite in Conversione dei certificati nel formato supportato per convertirli in formato PEM.

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

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

Suddivisione della catena di certificati

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

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

La figura seguente mostra un esempio di catena di certificati:

Flusso della catena di certificati: dal certificato di identità al certificato intermedio al 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 se hai una catena di certificati valida.

  1. Esegui questo comando OpenSSL per ottenere i Subject e Issuer per ogni certificato nella catena da entity a root e verifica che formano una catena di certificati adeguata:
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    Dove certificate è il nome del certificato.

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

    Se i certificati della catena sono conformi a queste linee guida, la catena di certificati è considerata completa e valida.

    Esempio di convalida della catena di certificati

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

    Certificato di 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 in precedenza, puoi notare quanto segue:

    • Il Subject del certificato intermedio corrisponde al Issuer del certificato dell'entità.
    • Il valore Subject del certificato radice corrisponde a Issuer di il certificato intermedio.
    • Subject e Issuer sono gli stessi nel certificato radice.

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

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

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

È sempre consigliabile verificare la sequenza hash dei certificati, in quanto può essere utile identificando problemi quali il nome comune (CN) del certificato con spazio indesiderato o caratteri speciali.

  1. Esegui questo comando OpenSSL per ottenere la sequenza hash per ogni nella catena dal giorno entity al giorno root e verificare che formano un'adeguata catena di certificati.
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    Dove certificate è il nome del certificato.

  3. Verifica che i certificati della catena rispettino le seguenti linee guida:
    • Subject di ogni certificato corrisponde alla Issuer della precedente certificato della catena (tranne il certificato Entity).
    • Subject e Issuer sono uguali per il certificato radice.

    Se i certificati della catena rispettano queste linee guida, la catena di certificati è considerate complete e valide.

    Esempio di convalida della catena di certificati tramite sequenza hash

    L'esempio seguente è 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 in precedenza, puoi notare quanto segue:

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

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

Verifica della scadenza del certificato

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

  • Ottieni le date di inizio e di fine del certificato.
  • Ottieni lo stato di scadenza.

Data di inizio e di fine

Esegui questo comando OpenSSL per ottenere le date di inizio e di fine di ciascun certificato nella catena dal giorno entity al giorno root e verifica che tutti i certificati della catena sono in vigore (la data di inizio è precedente a oggi) e non sono scaduti.

Esempio di convalida della scadenza del certificato fino alle 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 questo comando OpenSSL per verificare se il certificato è già scaduto o scadrà il prossimo N seconds. Viene restituito lo stato di scadenza del nel contesto della data corrente del sistema.

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

Dove certificate è il nome del certificato.

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

Il seguente comando usa 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 expireindica che non è ancora scaduto.