Como funciona um pacote de cadeia de certificados SSL?
root-ca ==> signing-ca ==> subordinate-ca ==> server
é mencionado para criar feixe de cadeia, o mais baixo deve ir primeiro.
$ cat server.crt subordinate-ca.crt signing-ca.crt > server.pem
Mas a verificação falha.
$ openssl verify -CAfile root-ca.crt server.pem
error 20 at 0 depth lookup:unable to get local issuer certificate
No entanto, se mudar a ordem, parece funcionar.
$ cat signing-ca.crt subordinate-ca.crt server.crt > server.pem
$ openssl verify -CAfile root-ca.crt server.pem
server.pem: OK
Então, qual seria o erro aqui?
A corrente depois de "gato" parece estar em baixo.
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
mais informações: de acordo com " http://www.herongyang.com/crypto/openssl_verify_2.html ", eu faço o seguinte teste o que funciona.
$ cat signing-ca.crt subordinate-ca.crt > inter.crt
$ openssl verify -CAfile root-ca.crt -untrusted inter.crt server.crt
server.crt: OK
Isso significa que todas as ligações são boas?
OK, finalmente descubro que isto não pode ser feito através da linha de comandos OpenSSL (ou pelo menos facilmente). http://openssl.6102.n7.nabble.com/check-certificate-chain-in-a-pem-file-td43871.html
2 answers
A ordem original está de facto ao contrário. Os certificados devem ser seguidos de o certificado emissor até que o último certificado seja emitido por uma raiz conhecida por a secção RFC 5246 do IETF 7.4.2
Esta é uma sequência (cadeia) de certificados. O certificado do remetente Deve ser o primeiro da lista. Cada certificado a seguir apresentado deve ser apresentado directamente certificar o que precede.
Ver também SSL: erro: 0B080074: rotinas do certificado x509: X509_check_ Private_key: chave valores inadequados para técnicas de resolução de problemas.
Mas ainda não sei porque escreveram a especificação para que a ordem importasse.openssl pkcs12 -export -chain -in server.crt -CAfile ...