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
- Verifica dell'oggetto e dell'emittente del certificato
- Verifica dell'hash dell'oggetto e dell'emittente del certificato
- Verifica della scadenza del certificato
Suddivisione della catena di certificati
Prima di convalidare il certificato, devi dividere la catena di certificati in certificati separati seguendo questi passaggi:
- Accedi al server in cui esiste il client OpenSSL.
- 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:
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.
-
Esegui il seguente OpenSSL comando per ottenere
SubjecteIssuerper ogni certificato nella catena daentityaroote verificare che formino una catena di certificati corretta:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'Dove certificate è il nome del certificato.
-
Verifica che i certificati nella catena rispettino le seguenti linee guida:
-
Subjectdi ogni certificato corrisponde aIssuerdel certificato precedente nella catena (ad eccezione del certificatoEntity). -
SubjecteIssuersono 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.comCertificato 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 1O1Certificato 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 = GlobalSignNell'esempio mostrato sopra, nota quanto segue:
-
Il
Subjectdel certificato intermedio corrisponde alIssuerdel certificato dell'entità. -
Il
Subjectdel certificato radice corrisponde alIssuerdel certificato intermedio. -
SubjecteIssuersono 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.
- Esegui il seguente OpenSSL comando per ottenere la
hashsequenza per ogni certificato nella catena daentityaroote verificare che formino una catena di certificati corretta. - Verifica che i certificati nella catena rispettino le seguenti linee guida:
-
Subjectdi ogni certificato corrisponde aIssuerdel certificato precedente nella catena (ad eccezione del certificatoEntity). -
SubjecteIssuersono uguali per il certificato radice. -
Il
subject hashdel certificato intermedio corrisponde alissuer hashdel certificato dell'entità. -
subject hashdel certificato radice corrisponde aissuer hashdel certificato dell'emittente. -
subjecteissuer hashsono uguali nel certificato radice.
openssl x509 -hash -issuer_hash -noout -in certificate
Dove certificate è il nome del certificato.
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:
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.