Class: KingslyCertbot::IpSecCertAdapter
- Inherits:
-
Object
- Object
- KingslyCertbot::IpSecCertAdapter
- Defined in:
- lib/kingsly_certbot/ip_sec_cert_adapter.rb
Instance Attribute Summary collapse
-
#cert_backup_dir ⇒ Object
readonly
Returns the value of attribute cert_backup_dir.
-
#cert_private_dir ⇒ Object
readonly
Returns the value of attribute cert_private_dir.
-
#certs_dir ⇒ Object
readonly
Returns the value of attribute certs_dir.
Instance Method Summary collapse
-
#initialize(cert_bundle, root = '/') ⇒ IpSecCertAdapter
constructor
A new instance of IpSecCertAdapter.
- #restart_service ⇒ Object
- #update_assets ⇒ Object
Constructor Details
#initialize(cert_bundle, root = '/') ⇒ IpSecCertAdapter
Returns a new instance of IpSecCertAdapter.
7 8 9 10 11 12 13 14 15 |
# File 'lib/kingsly_certbot/ip_sec_cert_adapter.rb', line 7 def initialize(cert_bundle, root = '/') raise 'passed parameter not of type CertBundle' if cert_bundle.class != KingslyCertbot::CertBundle @cert_bundle = cert_bundle root = root.end_with?('/') ? root : "#{root}/" @cert_backup_dir = "#{root}etc/ipsec.d/backup" @cert_private_dir = "#{root}etc/ipsec.d/private" @certs_dir = "#{root}etc/ipsec.d/certs" end |
Instance Attribute Details
#cert_backup_dir ⇒ Object (readonly)
Returns the value of attribute cert_backup_dir.
5 6 7 |
# File 'lib/kingsly_certbot/ip_sec_cert_adapter.rb', line 5 def cert_backup_dir @cert_backup_dir end |
#cert_private_dir ⇒ Object (readonly)
Returns the value of attribute cert_private_dir.
5 6 7 |
# File 'lib/kingsly_certbot/ip_sec_cert_adapter.rb', line 5 def cert_private_dir @cert_private_dir end |
#certs_dir ⇒ Object (readonly)
Returns the value of attribute certs_dir.
5 6 7 |
# File 'lib/kingsly_certbot/ip_sec_cert_adapter.rb', line 5 def certs_dir @certs_dir end |
Instance Method Details
#restart_service ⇒ Object
50 51 52 53 54 |
# File 'lib/kingsly_certbot/ip_sec_cert_adapter.rb', line 50 def restart_service result = Kernel.system('ipsec restart') $logger.error('ipsec restart command failed') unless result result end |
#update_assets ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/kingsly_certbot/ip_sec_cert_adapter.rb', line 17 def update_assets cert_filename = "#{@cert_bundle.subdomain}.#{@cert_bundle.tld}.pem" private_key_filepath = "#{cert_private_dir}/#{cert_filename}" cert_filepath = "#{certs_dir}/#{cert_filename}" if File.exist?(private_key_filepath) && File.exist?(cert_filepath) existing_private_key_content = File.read(private_key_filepath) existing_cert_content = File.read(cert_filepath) if existing_private_key_content == @cert_bundle.private_key && existing_cert_content == @cert_bundle.full_chain $logger.info('New certificate file is same as old cert file, skipping updating certificates') return else time = Time.now.strftime('%Y%m%d_%H%M%S') backup_dir = "#{cert_backup_dir}/#{time}" $logger.info("Taking backup of existing certificates to #{backup_dir}") FileUtils.mkdir_p(backup_dir) FileUtils.mv(private_key_filepath, "#{backup_dir}/#{cert_filename}.private", force: true) FileUtils.mv(cert_filepath, "#{backup_dir}/#{cert_filename}.certs", force: true) end end FileUtils.mkdir_p(cert_private_dir) unless Dir.exist?(cert_private_dir) File.open(private_key_filepath, 'w') do |f| f.write(@cert_bundle.private_key) end FileUtils.mkdir_p(certs_dir) unless Dir.exist?(certs_dir) File.open(cert_filepath, 'w') do |f| f.write(@cert_bundle.full_chain) end end |