gitlab-org--gitlab-foss/lib/gitlab/lets_encrypt/order.rb

40 lines
848 B
Ruby

# frozen_string_literal: true
module Gitlab
module LetsEncrypt
class Order
def initialize(acme_order)
@acme_order = acme_order
end
def new_challenge
challenge = authorization.http
::Gitlab::LetsEncrypt::Challenge.new(challenge)
end
def request_certificate(domain:, private_key:)
csr = ::Acme::Client::CertificateRequest.new(
private_key: OpenSSL::PKey.read(private_key),
subject: { common_name: domain }
)
acme_order.finalize(csr: csr)
end
def challenge_error
authorization.challenges.first&.error
end
delegate :url, :status, :expires, :certificate, to: :acme_order
private
attr_reader :acme_order
def authorization
@acme_order.authorizations.first
end
end
end
end