class EaSSL::CertificateAuthority
- Author
-
Paul Nicholson (paul@webpowerdesign.net)
- Co-Author
-
Adam Williams (adam@thewilliams.ws)
- Copyright
-
Copyright © 2006 WebPower Design
- License
-
Distributes under the same terms as Ruby
Attributes
certificate[R]
key[R]
serial[R]
Public Class Methods
load(options)
click to toggle source
# File lib/eassl/certificate_authority.rb, line 23 def self.load(options) key = Key.load(File.join(options[:ca_path], 'cakey.pem'), options[:ca_password]) certificate = AuthorityCertificate.load(File.join(options[:ca_path], 'cacert.pem')) serial = Serial.load(File.join(options[:ca_path], 'serial.txt')) self.new(:key => key, :certificate => certificate, :serial => serial) end
new(options = {})
click to toggle source
# File lib/eassl/certificate_authority.rb, line 10 def initialize(options = {}) if options[:key] && options[:certificate] && options[:serial] @key = options[:key] @certificate = options[:certificate] @serial = options[:serial] else options[:name] ||= {} @key = Key.new({:password => 'ca_ssl_password'}.update(options)) @certificate = AuthorityCertificate.new(:key => @key, :name => options[:name]) @serial = Serial.new(:next => 1) end end
Public Instance Methods
create_certificate(signing_request, type='server', days_valid=nil)
click to toggle source
# File lib/eassl/certificate_authority.rb, line 30 def create_certificate(signing_request, type='server', days_valid=nil) options = { :signing_request => signing_request, :ca_certificate => @certificate, :serial => @serial.issue_serial, :type => type } if days_valid options[:days_valid] = days_valid end cert = Certificate.new(options) @serial.save! cert.sign(@key) cert end