2013-05-16 50 views
1

我必须使用私钥将证书文件(pem格式)转换为pfx。这个命令在Linux中完美的工作原理是ruby​​中的openssl等价命令

openssl pkcs12 -export -out certificate1.pfx -inkey myPrivateKey.key -in myCert.pem 

任何人都可以帮助我使用ruby-openssl在ruby中编写等效代码。

+0

如果你只打算在Linux上运行,只是运行带有'这个命令system'。 – Linuxios

+0

该命令将成为ruby api的一部分,所以它不应该依赖于系统。 –

回答

4

应该是easy

#!/usr/bin/env ruby 
# export-der.rb 

require 'openssl' 

def export_der(pass, key, cert, out) 
    key = OpenSSL::PKey.read File.read(key) 
    cert = OpenSSL::X509::Certificate.new File.read(cert) 
    name = nil # not sure whether this is allowed 
    pkcs12 = OpenSSL::PKCS12.create(pass, name, key, cert) 
    File.open(out, 'w'){|f| f << pkcs12.to_der } 
end 

puts 'Password:' 
export_der($stdin.read, *ARGV) 

,并呼吁它这样(未经测试;-)):

$ ruby export-der.rb myPrivateKey.key myCert.pem certificate1.pfx 
+0

谢谢DMKE。它的工作就像一个魅力:) –