build_cert(name, key, opt = {})
public
Build a certificate from the given DN and private key.
# File lib/rubygems/security.rb, line 674
def self.build_cert(name, key, opt = {})
Gem.ensure_ssl_available
opt = OPT.merge opt
cert = OpenSSL::X509::Certificate.new
cert.not_after = Time.now + opt[:cert_age]
cert.not_before = Time.now
cert.public_key = key.public_key
cert.serial = 0
cert.subject = name
cert.version = 2
ef = OpenSSL::X509::ExtensionFactory.new nil, cert
cert.extensions = opt[:cert_exts].map do |ext_name, value|
ef.create_extension ext_name, value
end
i_key = opt[:issuer_key] || key
i_cert = opt[:issuer_cert] || cert
cert = sign_cert cert, i_key, i_cert, opt
cert
end