我想做一个简单的事情
OpenSSL的:: X509 :: Certificate.new(File.read( “testuser.p12”))
来自irb与 ruby 1.8.7(或1.9.2),两者的结果相同.我得到的错误是OpenSSL :: X509 :: CertificateError:嵌套asn1错误
OpenSSL的:: X509 :: Certificate.new(File.read( “testuser.p12”))
来自irb与 ruby 1.8.7(或1.9.2),两者的结果相同.我得到的错误是OpenSSL :: X509 :: CertificateError:嵌套asn1错误
这是一个ruby问题,还是这表明证书本身是错误的?我发现一些类似的报告围绕亚马逊证书展示了这些错误,结果证明是证书本身.它虽然在浏览器中工作.关于如何解决这个问题的建议?
解决方法
根据后缀,“testuser.p12”似乎是PKCS#12文件.将PKCS#12格式读取为X.509证书格式会导致ASN.1解码错误.
你应该改为使用OpenSSL :: PKCS12.new(File.read(“testuser.p12”)).如果文件受密码保护(这是正常的),请将密码作为PKCS12.new的第二个参数,如OpenSSL :: PKCS12.new(File.read(“testuser.p12”),“pass”)
您可以通过PKCS12#certificate和PKCS12 #ca_certs方法提取证书和CA证书.
p12 = OpenSSL::PKCS12.new(File.read("testuser.p12"),"pass") p p12.certificate p p12.ca_certs