24 lines
767 B
Ruby
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
|