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 :: PKCS12 :: PKCS12Error:PKCS12_parse:mac验证失败
来自(irb):21:initialize
中 来自(irb):21:new
中 来自(irb):21
来自C:/ Ruby192 / bin / irb:12:<main>
答案 0 :(得分:8)
File.read("UserCert.p12", "rb")
问题是ruby默认读取文件为文本,需要强制将文件读取为二进制文件,它解决了问题