2012-04-18 4 views
5
require 'openssl' 

if ARGV.length == 2 
    pkcs12 = OpenSSL::PKCS12.new(File.read(ARGV[0]), ARGV[1]) 
    p pkcs12.certificate 
else 
    puts "Usage: load_cert.rb <path_to_cert> <cert_password>" 
end 

これはWindows上でエラーが発生しますが、ないのLinuxでの実行を。窓にOpenSSLがエラーではなく、CentOSの上で生成理由:PKCS12_parse:MAC検証失敗(OpenSSLの:: PKCS12 :: PKCS12Error)

エラー:デフォルトではRubyはテキストとしてファイルを読み込み、バイナリとしてファイルを読むために強制する必要がある

OpenSSL::PKCS12::PKCS12Error: PKCS12_parse: mac verify failure
from (irb):21:in initialize
from (irb):21:in new
from (irb):21
from C:/Ruby192/bin/irb:12:in <main>

+0

を解決した、あなたはRubyプロジェクトにバグを報告する必要があります。それがあなたに与えられれば、それは他人を得るでしょう。彼らがそれについて知っていない限り、Rubyはそれを修正することはできません。 [Ruby Issue Tracking System](https://bugs.ruby-lang.org/)を参照してください。 – jww

答えて

6
File.read("UserCert.p12", "rb") 

問題は、それはあなたの答えに基づいて問題

+1

これは私にとってはうまくいきませんでしたが、以下は 'File.binread( 'UserCert.p12')' – jmccure

+0

です。使用しているRubyのバージョンによって異なります。 –

+0

私はrubyを使用しています2.0.0p353 – jmccure

関連する問題