Saya membuat rantai sertifikat PEM (CA, perantara, dan daun) menggunakan pyopenssl
, dan saya ingin mengonfirmasi bahwa saya mendefinisikan semuanya dengan benar.
Berikut langkah-langkah yang saya ambil:
- Saya membuat tiga sertifikat PEM, menandatangani sendiri CA dan menentukan batasan dasar
crypto.X509Extension(b'basicConstraints', False, b'CA:TRUE')
mengikuti pertanyaan ini - Saya menyalin CA dan sertifikat perantara ke
/usr/local/share/ca-certificates
(sebagai file crt) dan menjalankansudo update-ca-cert
- Saya telah menyiapkan server sederhana berdasarkan contoh OpenSSL ini
- Saya mencoba menjalankan server dengan sertifikat CA dan mengeksekusi
openssl s_client -connect localhost:4433 -CApath /etc/ssl/certs
- Berfungsi dengan baik, dapatkanVerify return code: 0 (ok)
- Melakukan hal yang sama tetapi kali ini server menggunakan sertifikat perantara - Bagus juga,
Verify return code: 0 (ok)
- Melakukan hal yang sama tetapi kali ini server menggunakan sertifikat daun - Kali ini saya mendapat
Verify return code: 24 (invalid CA certificate)
Selain itu, saya mencoba memverifikasi sertifikat dan mendapatkan yang berikut:
$ openssl verify 1-ca.pem
1-ca.pem: OK
$ openssl verify 2-intermediate.pem
2-intermediate.pem: OK
$ openssl verify 3-leaf.pem
C = NL, ST = Amsterdam, L = Zaandam, O = FakeDigiCert, OU = FakeFake, CN = www.fakedigicert.nl
error 24 at 1 depth lookup: invalid CA certificate
error 3-leaf.pem: verification failed
Mengapa sertifikat CA tiba-tiba tidak valid setelah sertifikat server berjarak lebih dari satu langkah dari CA?