6

ruby 1.8.7 (または 1.9.2)OpenSSL::X509::Certificate.new(File.read("testuser.p12"))で単純な from irbを実行しようとしていますが、 どちらも同じ結果です。私が返すエラーはOpenSSL::X509::CertificateError: nested asn1 error

これはルビーの問題ですか、それとも証明書自体の形式が正しくないことを示唆していますか? 私は、そのようなエラーを示す Amazon 証明書を中心に展開する同様のレポートをいくつか見つけましたが、それは証明書自体であることが判明しました。ただし、ブラウザでは機能します。これを解決する方法に関する提案はありますか?

4

1 に答える 1

10

「testuser.p12」は接尾辞によると PKCS#12 ファイルのようです。PKCS#12 形式を X.509 証明書形式として読み取ると、ASN.1 デコード エラーが発生します。

代わりに行う必要がありOpenSSL::PKCS12.new(File.read("testuser.p12"))ます。ファイルがパスフレーズで保護されている場合 (正常です)、パスフレーズを PKCS12.new の 2 番目のパラメーターとして指定します。OpenSSL::PKCS12.new(File.read("testuser.p12"), "pass")

PKCS12#certificateおよびメソッドを使用して、証明書と CA 証明書を抽出できPKCS12#ca_certsます。

p12 = OpenSSL::PKCS12.new(File.read("testuser.p12"), "pass")
p p12.certificate
p p12.ca_certs
于 2012-01-04T03:59:30.373 に答える