Devo distribuire certificati CA root o certificati CA intermedi al client?

0

Ho seguito questo tutorial per creare una CA principale, una CA intermedia e un certificato del server.

Posso verificare:

  • il certificato intermedio con il certificato di origine
  • il certificato del server con il certificato intermedio

Ma non riesco a verificare il certetto intermedio cert + server cert con il certificato di root.

In altre parole:

# verify intermediate cert with root cert: OK
openssl verify -CAfile root/certs/ca.cert.pem intermediate/certs/intermediate.cert.pem

# verify server cert with intermediate cert: OK
openssl verify -CAfile intermediate/certs/intermediate.cert.pem intermediate/certs/my.domain.cert.pem

# create bundle intermediate cert + server cert
cat intermediate/certs/my.domain.cert.pem intermediate/certs/intermediate.cert.pem  > certs/my.domain.bundle.pem

# checking bundle with the root cert: NOT OK
openssl verify -CAfile root/certs/ca.cert.pem intermediate/certs/my.domain.bundle.pem # NOT OK

Questo mi confonde perché pensavo che avrei distribuito il certificato della CA root sui client e che il server usasse il cert intermedio + cert del server.

Ciò significa che dovrei solo distribuire il cert intermedio sui client e il server utilizzare solo il certificato del server?

    
posta little-dude 24.07.2018 - 18:27
fonte

1 risposta

3

In generale, un server deve consegnare il certificato del server e i certificati intermedi. Per citare la RFC 5246 (enfasi sulla mia):

If the server is authenticated, its certificate message must provide a valid certificate chain leading to an acceptable certificate authority.

È preferibile che il server faccia ciò, invece di distribuire gli intermediari a tutti i client, perché cercare di assicurarsi che tutti i tuoi clienti ricevano e mantenere gli intermediari appropriati è molto più difficile che distribuirli ogni volta come parte del stretta di mano.

Facendo eco a questo setup, dovresti provare, invece di usare il bundle come target, usando l'argomento -untrusted a openssl verify per integrare gli intermedi:

-untrusted file

A file of additional untrusted certificates (intermediate issuer CAs) used to construct a certificate chain from the subject certificate to a trust-anchor. The file should contain one or more certificates in PEM format. This option can be specified more than once to include untrusted certificates from multiple files.

    
risposta data 24.07.2018 - 19:36
fonte

Leggi altre domande sui tag