def initialize
@key = OpenSSL::PKey::RSA.new(1024)
public_key = @key.public_key
subject = "/C=EventMachine/O=EventMachine/OU=EventMachine/CN=EventMachine"
@cert = OpenSSL::X509::Certificate.new
@cert.subject = @cert.issuer = OpenSSL::X509::Name.parse(subject)
@cert.not_before = Time.now
@cert.not_after = Time.now + 365 * 24 * 60 * 60
@cert.public_key = public_key
@cert.serial = 0x0
@cert.version = 2
factory = OpenSSL::X509::ExtensionFactory.new
factory.subject_certificate = @cert
factory.issuer_certificate = @cert
@cert.extensions = [
factory.create_extension("basicConstraints","CA:TRUE", true),
factory.create_extension("subjectKeyIdentifier", "hash")
]
@cert.add_extension factory.create_extension("authorityKeyIdentifier", "keyid:always,issuer:always")
@cert.sign(@key, OpenSSL::Digest::SHA1.new)
end