Jak działa pakiet łańcucha certyfikatów SSL?
Stworzyłem taką hierarchię łańcuchów.
root-ca ==> signing-ca ==> subordinate-ca ==> server
Wspomniano o utworzeniu wiązki łańcucha, najniższa powinna iść pierwsza.
$ cat server.crt subordinate-ca.crt signing-ca.crt > server.pem
Ale weryfikacja kończy się niepowodzeniem.
$ openssl verify -CAfile root-ca.crt server.pem
error 20 at 0 depth lookup:unable to get local issuer certificate
Jeśli jednak zmienię kolejność, wydaje się działać.
$ cat signing-ca.crt subordinate-ca.crt server.crt > server.pem
$ openssl verify -CAfile root-ca.crt server.pem
server.pem: OK
Więc jaki byłby błąd tutaj?
Łańcuch za „kotem” wygląda jak poniżej.
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Więcej informacji: zgodnie z „http://www.herongyang.com/crypto/openssl_verify_2.html„Wykonuję następujący test, który działa.
$ cat signing-ca.crt subordinate-ca.crt > inter.crt
$ openssl verify -CAfile root-ca.crt -untrusted inter.crt server.crt
server.crt: OK
Czy to oznacza, że wszystkie linki są dobre?
OK, w końcu odkryłem, że nie można tego zrobić za pomocą wiersza poleceń OpenSSL (lub przynajmniej łatwo).http://openssl.6102.n7.nabble.com/check-certificate-chain-in-a-pem-file-td43871.html