Saya memiliki tiga sertifikat dalam sebuah rantai:
- root.pem
- intermediate.pem
- john.pem
Ketika saya memeriksa mereka menggunakan openssl x509 -in [filename] -text -noout
mereka tampak baik-baik saja, root.pem sepertinya ditandatangani sendiri (Penerbit == Subjek), dan Subjek dari setiap sertifikat adalah Penerbit yang berikutnya, seperti yang diharapkan.
Dan memang saya dapat memverifikasi rantai hingga sertifikat perantara:
$ openssl verify -CAfile root.pem root.pem
root.pem: OK
$ openssl verify -CAfile root.pem intermediate.pem
intermediate.pem: OK
Namun, john.pem gagal:
$ 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
Sepengetahuan saya, ini berarti openssl tidak dapat menemukan penerbit untuk intermediate.pem. Itu tidak masuk akal karena root.pem memang penerbit untuk intermediate.pem.
Apa yang saya lewatkan?
Sunting: Saya awalnya mengirim jawaban yang mengatakan bahwa root.pem dan intermediate.pem harus digabung dalam satu file, dan kemudian seseorang harus menggunakan file ini sebagai parameter untuk -CAfile
. Ini SALAH, karena ini secara implisit mempercayai perantara, seperti yang ditunjukkan oleh Johannes Pille . Baca tautan yang diposkannya di jawaban saya yang dihapus: https://mail.python.org/pipermail/cryptography-dev/2016-August/000676.html