class Certflare::Authenticator
Public Class Methods
new()
click to toggle source
# File lib/certflare/common/authenticator.rb, line 16 def initialize @cfg = YAML.load_file(Pathname.new('/etc/').join('certflare')) @api_key = @cfg['api_key'] @email = @cfg['email'] @domain = ENV['CERTBOT_DOMAIN'] @validation = ENV['CERTBOT_VALIDATION'] @main_domain = PublicSuffix.domain(@domain) zone = CloudflareClient::Zone.new(auth_key: @api_key, email: @email).zones(name: @main_domain) @zone_id = zone[:result][0][:id] end
Public Instance Methods
create_cleanup()
click to toggle source
# File lib/certflare/common/authenticator.rb, line 36 def create_cleanup domain_dir = Pathname.new("/tmp").join('certflare', "CERTBOT_#{@domain}") unless domain_dir.exist? Dir.mkdir(domain_dir, 0700) end zone_id_file = domain_dir.join('ZONE_ID') record_id_file = domain_dir.join('RECORD_ID') File.open(zone_id_file, 'w') do |f| f.print(@zone_id) end File.open(record_id_file, 'w') do |f| f.print(@record_id) end # puts <<~HEREDOC # details for #{zone_id_file.to_s} # writable? #{File.writable?(zone_id_file)} # readable? #{File.readable?(zone_id_file)} #HEREDOC #puts <<~HEREDOC # details for #{record_id_file.to_s} # writable? #{File.writable?(record_id_file)} # readable? #{File.readable?(record_id_file)} #HEREDOC end
create_txt_record()
click to toggle source
# File lib/certflare/common/authenticator.rb, line 27 def create_txt_record domain_with_prefix = "_acme-challenge.#{@domain}" # puts "record name: #{domain_with_prefix}" dns_records = CloudflareClient::Zone::DNS.new(zone_id: @zone_id, auth_key: @api_key, email: @email) record = dns_records.create(name: domain_with_prefix, type: 'TXT', content: @validation, ttl: 120) @record_id = record[:result][:id] # puts "record id: #{@@record_id}" end