imap.rb/lib/ssl_certificate.rb

24 lines
767 B
Ruby

def make_fake_certificate(key_size: 2048,
private_out: "private_key.pem",
public_out: "public_key.pem",
cert_out: "certificate.pem")
key = OpenSSL::PKey::RSA.new key_size
name = OpenSSL::X509::Name.parse '/CN=ca/DC=example'
cert = OpenSSL::X509::Certificate.new
cert.version = 2
cert.serial = 0
cert.not_before = Time.now
cert.not_after = Time.now + 3600 * 6
cert.public_key = key.public_key
cert.subject = name
cert.issuer = name
cert.sign key, OpenSSL::Digest.new('SHA1')
File.open(private_out, 'w') { |io| io.write key.to_pem }
File.open(public_out, 'w') { |io| io.write key.public_key.to_pem }
File.open(cert_out, 'w') { |io| io.write cert.to_pem }
end