diff options
Diffstat (limited to 'app/services/pages_domains/create_acme_order_service.rb')
-rw-r--r-- | app/services/pages_domains/create_acme_order_service.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/app/services/pages_domains/create_acme_order_service.rb b/app/services/pages_domains/create_acme_order_service.rb index c600f497fa5..e289a78091b 100644 --- a/app/services/pages_domains/create_acme_order_service.rb +++ b/app/services/pages_domains/create_acme_order_service.rb @@ -2,6 +2,9 @@ module PagesDomains class CreateAcmeOrderService + # elliptic curve algorithm to generate the private key + ECDSA_CURVE = "prime256v1" + attr_reader :pages_domain def initialize(pages_domain) @@ -14,7 +17,12 @@ module PagesDomains challenge = order.new_challenge - private_key = OpenSSL::PKey::RSA.new(4096) + private_key = if Feature.enabled?(:pages_lets_encrypt_ecdsa, pages_domain.project) + OpenSSL::PKey::EC.generate(ECDSA_CURVE) + else + OpenSSL::PKey::RSA.new(4096) + end + saved_order = pages_domain.acme_orders.create!( url: order.url, expires_at: order.expires, |