2012-01-04 11 views
6

Sto cercando di fare un semplice OpenSSL::X509::Certificate.new(File.read("testuser.p12")) da IRB con ruby ​​1.8.7 (o 1.9.2), stesso risultato per entrambi. L'errore che torno è OpenSSL::X509::CertificateError: nested asn1 errorRubino Errore durante la lettura nel certificato sul file con OpenSSL

Si tratta di un problema rubino o questo suggerisce che il certificato stesso non è valido? Ho trovato alcuni rapporti simili che ruotano attorno a un certificato amazzonico che dimostra tali errori, che si è rivelato essere il certificato stesso. Funziona nel browser però. Suggerimenti su come risolvere questo?

risposta

10

"testuser.p12" sembra un file PKCS # 12 in base al suffisso. La lettura del formato PKCS # 12 come formato del certificato X.509 causa un errore di decodifica ASN.1.

Si dovrebbe fare invece OpenSSL::PKCS12.new(File.read("testuser.p12")). Se il file è protetto con password (è normale), dare la passphrase come secondo parametro per PKCS12.new come OpenSSL::PKCS12.new(File.read("testuser.p12"), "pass")

È possibile estrarre certificati e certificati CA per PKCS12#certificate e PKCS12#ca_certs metodi.

p12 = OpenSSL::PKCS12.new(File.read("testuser.p12"), "pass") 
p p12.certificate 
p p12.ca_certs 
+0

grazie! Questo sembrava essere il problema. Non ho avuto molto a che fare con i certs e stavo seguendo un esempio apparentemente negativo. Il tuo post e [questo] (http://stackoverflow.com/questions/8167579/connect-to-web-server-via-phonegap-with-ssl-and-certificate) hanno aiutato enormemente l'aggiornamento – yodafan86

+0

: aveva funzionato solo fermato e non riesco a capire perché. è letteralmente esploso tra le esecuzioni di una sperimentazione, e ora anche in irb, che p12 = la linea OpenSSL afferma di aver bisogno di 4 parametri? Qualche cambiamento di dipendenza nel richiedere 'net/https'? Quali altri 2 parametri potrei avere bisogno? Qualsiasi aiuto molto apprezzato, questo mi ha lasciato perplesso! – yodafan86

+0

sei riuscito a risolverlo? – shailesh

Problemi correlati