チェーンに3つの証明書があります。
- root.pem
- 中間.pem
- john.pem
私がそれらを使用しopenssl x509 -in [filename] -text -noout
てそれらを調べると、root.pemは自己署名されているように見え(Issuer == Subject)、期待通り、各証明書のSubjectは次の証明書の発行者です。
実際、中間証明書までのチェーンを検証できます。
$ openssl verify -CAfile root.pem root.pem
root.pem: OK
$ openssl verify -CAfile root.pem intermediate.pem
intermediate.pem: OK
ただし、john.pemは失敗します。
$ openssl verify -CAfile root.pem -CAfile intermediate.pem john.pem
john.pem: C = CL, [...redacted data...]
error 2 at 1 depth lookup:unable to get issuer certificate
私の知る限りでは、これはopensslがIntermediate.pemの発行者を見つけることができないことを意味します。root.pemは実際にintermediate.pemの発行者なので、これは意味がありません。
何が欠けていますか?
編集:私は最初に、root.pemとIntermediate.pemを1つのファイルに連結し、次にこのファイルをのパラメーターとして使用する必要があると回答を投稿しました-CAfile
。これは間違っています。これは、Johannes Pilleが指摘するように、intermediate.pemを暗黙的に信頼しているためです。私が削除した回答に彼が投稿したリンクを読んでください:https : //mail.python.org/pipermail/cryptography-dev/2016-August/000676.html