Comment fonctionne une chaîne de certificat SSL bundle?

j'ai créé une hiérarchie de chaînes comme celle-ci.

root-ca ==> signing-ca ==> subordinate-ca ==> server

il est mentionné pour créer faisceau de chaîne, le plus bas devrait aller en premier.

$ cat server.crt subordinate-ca.crt signing-ca.crt > server.pem

mais la vérification échoue.

$ openssl verify -CAfile root-ca.crt server.pem
error 20 at 0 depth lookup:unable to get local issuer certificate

cependant, si je change l'ordre cela semble fonctionner.

$ cat signing-ca.crt subordinate-ca.crt server.crt > server.pem
$ openssl verify -CAfile root-ca.crt server.pem
server.pem: OK

Alors, quelle serait l'erreur ici?

la chaîne après" cat " ressemble à ci-dessous.

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

plus d'informations: selon " http://www.herongyang.com/crypto/openssl_verify_2.html ", je réalise le test suivant qui fonctionne.

$ cat signing-ca.crt subordinate-ca.crt > inter.crt
$ openssl verify -CAfile root-ca.crt -untrusted inter.crt server.crt
server.crt: OK

ça veut dire que tous les liens sont bons?

OK, je découvre enfin que cela ne peut pas être fait via la ligne de commande OpenSSL (ou au moins facilement). http://openssl.6102.n7.nabble.com/check-certificate-chain-in-a-pem-file-td43871.html

36
demandé sur ffghfgh 2013-12-06 00:03:33

2 réponses

L'ordre original est en fait à l'envers. Les Certs doivent être suivi de le cert émetteur jusqu'à ce que le dernier cert soit émis par une racine connue selon RFC 5246 de L'IETF Section 7.4.2

il s'agit d'une séquence (chaîne) de certificats. Le certificat de l'expéditeur DOIT venir en premier dans la liste. Chaque certificat DOIT directement certifier celui qui le précède.

voir aussi SSL: error: 0B080074:x509 routines de certificat:X509_check_private_key: key values mismatch pour les techniques de dépannage.

mais je ne sais toujours pas pourquoi ils ont écrit le cahier des charges pour que l'ordre compte.

9
répondu Vynce 2017-05-23 12:10:29

vous devez utiliser le openssl pkcs12 -export -chain -in server.crt -CAfile ...

voir https://www.openssl.org/docs/apps/pkcs12.html

-5
répondu Stuart 2014-10-20 13:19:34