2013-05-16 2 views
1

Мне нужно преобразовать файл сертификата (формат pem) в pfx с помощью закрытого ключа. Команда отлично работает в linux:openssl эквивалентная команда в ruby ​​

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

Может ли кто-нибудь помочь мне написать эквивалентный код в ruby ​​с помощью ruby-openssl.

+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. это работает как шарм :) –

Смежные вопросы