Untuk memeriksa apakah sertifikat untuk google.com telah dicabut, saya mencoba perintah berikut:
curl https://www.google.com --cacert GeoTrust_Global_CA.pem --crlfile gtglobal.pem -v
, tapi saya mendapat kesalahan "masalah sertifikat SSL" yang ditakuti:
* About to connect() to www.google.com port 443 (#0)
* Trying 81.24.29.91... connected
* successfully set certificate verify locations:
* CAfile: GeoTrust_Global_CA.pem
CApath: /etc/ssl/certs
* successfully load CRL file:
* CRLfile: gtglobal.pem
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Closing connection #0
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Saya kira kesalahan ini tidak benar, karena Google harus memiliki sertifikat yang valid.
Apakah Anda tahu bagaimana saya bisa mengeluarkan perintah ikal yang melakukan ini dengan benar?
Keterangan lebih lanjut
Jika Anda bertanya-tanya mengapa saya menggunakan file-file spesifik (GeoTrust_Global_CA.pem dan gtglobal.pem) dalam perintah curl, ini adalah bagaimana saya melanjutkan:
- Saya pertama kali melihat pada apa CA mengeluarkan sertifikat untuk https://www.google.com . Ternyata itu adalah GeoTrust Global CA;
- Saya mengunduh sertifikat root GeoTrust Global CA dari sini (ini adalah file GeoTrust_Global_CA.pem);
- Saya mengunduh CRL (daftar pencabutan sertifikat) yang sesuai dari sini (ini adalah file gtglobal.pem).
linux
certificate
curl
Claudiu
sumber
sumber
Jawaban:
Itu naskah saya sehari-hari:
Ouput:
sumber
Rupanya, Anda tidak bisa hanya memverifikasi situs dengan satu permintaan sederhana. Lihat /programming/16244084/how-to-programmatically-check-if-a-certificate-has-been-revoked?lq=1 dan pertanyaan terkait sebelumnya tentang stackoverflow.
curl tidak bekerja dengan Daftar Pencabutan Sertifikat untuk saya, baik di Windows, maupun di Linux. Kenapa kamu harus menggunakan curl ? Tampaknya Opensl lebih tepat:
Kita mendapatkan
Kemudian kita dapat memeriksa beberapa sertifikat:
grep crl
dalam output dari perintah di atas. Bagian yang menarik adalah:Sekarang kita dapat memeriksa crl secara manual:
Sekarang kita melihat daftar sertifikat yang dicabut. IMHO, menggunakan curl tidak cukup, program lain diperlukan untuk memeriksa sertifikat. Dengan melakukan yang sederhana
kita melihat bahwa curl tidak memeriksa pencabutan (bahkan tidak terhubung ke tempat-tempat yang relevan). Itu hanya mengatakan
sumber
Tampaknya ini adalah masalah yang cukup umum pada Windows, seperti yang ditunjukkan oleh pertanyaan tentang stackoverflow ini . Saya secara khusus merujuk pada jawaban oleh pengguna Артур Курицын, yang saya kutip di sini untuk kenyamanan Anda:
Juga, artikel ini mungkin juga bermanfaat.
sumber
Salah satu cara yang saya temukan bekerja mirip dengan yang lain yang sudah terpapar, hanya mengirimkan hasilnya
dev/null
dan relatif cepat digunakan.curl -L -v -s https://www.google.de 1>/dev/null
sumber
curl
pada Unix tidak memeriksa (kecuali jika Anda secara khusus mengompilasinya dengan perpustakaan SSL yang secara otomatis melakukan ini untuk Anda).