Class: Ritm::CA
Overview
Wrapper on a Certificate Authority with ability of signing certificates
Instance Attribute Summary
Attributes inherited from Certificate
#cert
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Certificate
#initialize, #pem, #private_key, #public_key, #x509
Class Method Details
.ca_signing_profile ⇒ Object
37
38
39
|
# File 'lib/ritm/certs/ca.rb', line 37
def self.ca_signing_profile
{ 'extensions' => { 'keyUsage' => { 'usage' => %w(critical keyCertSign keyEncipherment digitalSignature) } } }
end
|
.create(common_name: 'RubyInTheMiddle') ⇒ Object
7
8
9
10
11
12
13
|
# File 'lib/ritm/certs/ca.rb', line 7
def self.create(common_name: 'RubyInTheMiddle')
super(common_name, serial_number: 1) do |cert|
cert.signing_entity = true
cert.sign!(ca_signing_profile)
yield cert if block_given?
end
end
|
.load(crt, private_key) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/ritm/certs/ca.rb', line 15
def self.load(crt, private_key)
super(crt, private_key) do |cert|
cert.signing_entity = true
cert.sign!(ca_signing_profile)
yield cert if block_given?
end
end
|
.signing_profile ⇒ Object
28
29
30
31
32
33
34
35
|
# File 'lib/ritm/certs/ca.rb', line 28
def self.signing_profile
{
'extensions' => {
'keyUsage' => { 'usage' => %w(keyEncipherment digitalSignature) },
'extendedKeyUsage' => { 'usage' => %w(serverAuth clientAuth) }
}
}
end
|
Instance Method Details
#sign(certificate) ⇒ Object
23
24
25
26
|
# File 'lib/ritm/certs/ca.rb', line 23
def sign(certificate)
certificate.cert.parent = @cert
certificate.cert.sign!(self.class.signing_profile)
end
|