SSL sertifikalarını komut satırında nasıl doğrulayabilirim?


52

Burada depolanan rsa anahtarı, ca-bundle ve sertifikanın doğru olduğunu doğrulamaya / doğrulamaya çalışıyorum. Bir web sunucusu tarafından sunulmuyorlar. Onları nasıl doğrulayabilirim?


Bak openssl x509manuel bölüm.
alex,

OpenSSL doğrulama kılavuzu size burada yardımcı olabilir. Ayrıca, bu sayfaya bakınız .
Stefan Lasiewski

Yanıtlar:


61

Sertifikalarınızın PEM biçiminde olduğunu varsayarak şunları yapabilirsiniz:

openssl verify cert.pem

"Ca-bundle", PEM biçiminde ek ara sertifikalar içeren bir dosyaysa:

openssl verify -untrusted ca-bundle cert.pem

Openssl, kurulu bir kök sertifika setini otomatik olarak kullanacak şekilde ayarlanmamışsa (örn., /etc/ssl/certs), CA'yı kullanabilir -CApathveya -CAfilebelirtebilirsiniz.


9
Uyarı, openssl doğrulama komutu beklediğinizden daha izin verilebilir! Varsayılan olarak, verilen CA dosyasını kontrol etmenin yanı sıra, sistemin certs dizininde eşleşen CA'ları da denetler; örneğin / etc / ssl / certs. Bu davranışı önlemek ve CAfile tarafından verilen belirli CA sertifikanıza karşı kontrol ettiğinizden emin olmak için, örneğin olmayan bir dizine sahip bir -Apath seçeneğini de geçmelisiniz, örneğin: openssl verify -verbose -CApath nosuchdir -CAfile cacert.pem server .crt
DSimon

2
Bir başka uyarı: Eğer kullanırsanız -CApath nosuchdir, server.crt ve cacert.pem kombinasyonunun root CA içermesi gerekir; openssl sadece bu dosyalar ile ara CA'ya kadar çalışabiliyorsa şikayet edecektir.
DSimon

İçinde böyle bir dosya yok diyor /certs/. bu bir soruna neden olur mu? sunucumun çalıştığı bir durumda yığılmış olduğum için http curl çalışıyor, ancak https .. curl hata alıyor. Web sitesinin çalışmayı durdurduğu yer.
Giorgi Gvimradze

18

Sertifika zincirini doğrulamak için bir liner:

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

Bu, CA'nın herhangi bir yere kurulmasını gerektirmez.

Ayrıntılar için https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work adresine bakın.


1
Uyarı, -CAfile seçeneği beklediğinizden daha izinlidir. Ayrıntılar için kabul edilen cevap hakkındaki yorumuma bakın.
DSimon

1
@ DSimon, bunu -CApath nosuchdircevaplamak için ekledim . Teşekkür ederim.
Vadzim

Sorun değil, yardımcı olduğuma sevindim. :-) Önceki yorumumu yayınladıktan sonra anladığım bir uyarı: Eğer belirtilen dosya -CAfilesadece bir ara sertifika ise, openssl şikayetçi olacaktır. Bu doğru davranıştır, çünkü verifykök CA'ya kadar komple bir zincir gerektirir, ancak yanıltıcı olabilir.
DSimon

2
Benim version ( OpenSSL 1.1.1 11 Sep 2018), argümanın -CApathvar olan bir dizin olmasını gerektirir .
Jake Cobb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.