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.