2013-05-16 88 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。它的工作就像一個魅力:) –