class Ant::SSL::Certificate
Stores a X509 certificate.
Attributes
cert[R]
key[R]
Public Class Methods
new(config, inventory)
click to toggle source
# File lib/ant/ssl/certificate.rb, line 11 def initialize(config, inventory) @config = config @inventory = inventory @key = OpenSSL::PKey::RSA.new(@config['key_size']) @cert = OpenSSL::X509::Certificate.new @cert.public_key = @key.public_key @extensions = OpenSSL::X509::ExtensionFactory.new @extensions.subject_certificate = @cert end
Public Instance Methods
ca_name()
click to toggle source
# File lib/ant/ssl/certificate.rb, line 50 def ca_name @config['ca'] end
configure_details!()
click to toggle source
# File lib/ant/ssl/certificate.rb, line 31 def configure_details! @config.configure_cert_details!(@cert) end
configure_extensions!()
click to toggle source
# File lib/ant/ssl/certificate.rb, line 35 def configure_extensions! @extensions.issuer_certificate = @ca.cert @config.configure_extensions!(@cert, @extensions) end
create!()
click to toggle source
# File lib/ant/ssl/certificate.rb, line 21 def create! return if File.file?(@config.key_path) @ca = @inventory.ca(@config['parent']) configure_details! configure_extensions! sign! save! end
save!()
click to toggle source
# File lib/ant/ssl/certificate.rb, line 45 def save! File.write(@config.key_path, @key.to_s) File.write(@config.crt_path, @cert.to_s) end
sign!()
click to toggle source
# File lib/ant/ssl/certificate.rb, line 40 def sign! @cert.issuer = @ca.cert.subject @cert.sign(@ca.key, OpenSSL::Digest::SHA256.new) end