2009-03-31 49 views
6

Hepinize merhaba ve teşekkürler.OpenSSL sertifikasını kendi CA adresinden doğrulayın

Kendi CA'm tarafından verilen ve sertifikası bulunan sertifikaları doğrulamam gerekir. Nasıl OpenSSL

Openssl eşdeğer Yakut kodunda

-CAfile

doğrulamak yapabilirim? OpenSSL için RDoc bu konuda çok yardımcı olmuyor.

 
require 'openssl' 

ca = OpenSSL::X509::Certificate.new(File.read('ca-cert.pem')) 

lic = OpenSSL::X509::Certificate.new(File.read('cert.pem')) 

puts lic.verify(ca) 

ama olsun: denedim

 
test.rb:7:in `verify': wrong argument (OpenSSL::X509::Certificate)! 
(Expected kind of OpenSSL::PKey::PKey) (TypeError) 
    from test.rb:7 

Hatta http://www.ruby-doc.org/stdlib/libdoc/openssl/rdoc/index.html de OpenSSL RDoc içinde "doğrulamak" bulamıyorum.

Herhangi bir yardım için teşekkür ederiz. Tekrar teşekkürler!

cevap

8

Benim mevcut yöntemlerden :)

2

listesini almak için bir Japanese help page kullanılan Eğer

lic.issuer.to_s == ca.subject.to_s 

ile sertifika veren doğrulayabilir bundan önce ilaveten

lic.verify(ca.public_key) 

ile doğrulamak gerekir lic.verify() yalnızca anahtarı lic imzalayan sertifikadan doğrulayın. Ticari ticari kök CA'lar son kullanıcı sertifikalarını doğrudan imzalamaz. Genellikle bir veya 2 ara imza sertifikası vardır.

Yani CA -> signer -> user cert sonra

lic.verify(signer.public_key) ve signer.verify(CA.public_key) true döner ama lic.verify(CA.public_key) yanlış dönecektir.

İlgili konular