Bagaimana saya bisa memverifikasi sertifikat SSL pada baris perintah?


52

Saya mencoba memvalidasi / memverifikasi bahwa kunci rsa, bundel, dan sertifikat yang disimpan di sini baik-baik saja. Mereka tidak dilayani oleh server web. Bagaimana saya bisa memverifikasi mereka?


Lihatlah bagian openssl x509manual.
— alex

Manual verifikasi OpenSSL dapat membantu Anda di sini. Juga, lihat halaman ini memiliki beberapa contoh yang sangat baik.
— Stefan Lasiewski

Jawaban:


61

Dengan asumsi sertifikat Anda dalam format PEM, Anda dapat melakukan:

openssl verify cert.pem

Jika "ca-bundle" Anda adalah file yang berisi sertifikat perantara tambahan dalam format PEM:

openssl verify -untrusted ca-bundle cert.pem

Jika openssl Anda tidak diatur untuk secara otomatis menggunakan satu set sertifikat root yang diinstal (misalnya di /etc/ssl/certs), maka Anda dapat menggunakan -CApathatau -CAfileuntuk menentukan CA.


9
Peringatan, perintah openssl memverifikasi lebih permisif daripada yang Anda harapkan! Secara default, selain memeriksa CAfile yang diberikan, ia juga memeriksa CA yang cocok dalam direktori sertifikat sistem, misalnya / etc / ssl / certs. Untuk mencegah perilaku ini dan memastikan Anda memeriksa sertifikat CA khusus yang diberikan oleh CAfile, Anda juga harus memberikan opsi -CApath dengan direktori yang tidak ada, misalnya: openssl memverifikasi -verbose -CApath nosuchdir -CAfile cacert.pem server .crt
— DSimon

2
Satu peringatan lebih lanjut: Jika Anda menggunakan -CApath nosuchdirkombinasi server.crt dan cacert.pem harus menyertakan root CA; Jika openssl hanya dapat bekerja sampai CA menengah dengan file-file itu maka itu akan mengeluh.
— DSimon

Dikatakan tidak ada file seperti itu di /certs/. apakah ini akan menyebabkan masalah? karena saya ditumpuk dalam situasi di mana server saya bekerja, http curl bekerja, tetapi https .. curl mendapat kesalahan. di mana situs web berhenti berfungsi.
— Giorgi Gvimradze

18

Berikut ini adalah satu-liner untuk memverifikasi rantai sertifikat:

openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem

Ini tidak perlu menginstal CA di mana pun.

Lihat https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-chain-bundle-work untuk detailnya.


1
Peringatan, opsi -CAfile lebih permisif daripada yang Anda harapkan. Lihat komentar saya pada jawaban yang diterima untuk detailnya.
— DSimon

1
@ Dimon, saya menambahkan -CApath nosuchdirini untuk menjawab. Terima kasih.
— Vadzim

Tidak masalah, senang membantu. :-) Satu peringatan yang saya temukan setelah memposting komentar saya sebelumnya: jika file yang ditentukan -CAfileitu sendiri hanya merupakan sertifikat perantara, maka openssl akan mengeluh. Ini adalah perilaku yang benar, karena verifymembutuhkan rantai lengkap sampai ke root CA, tetapi bisa menyesatkan.
— DSimon

2
Versi saya ( OpenSSL 1.1.1 11 Sep 2018) membutuhkan argumen -CApathuntuk menjadi direktori yang ada.
— Jake Cobb
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.