diff options
author | Vladimir Shushlin <vshushlin@gitlab.com> | 2019-06-26 11:47:21 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-06-26 11:47:21 +0000 |
commit | 7f85e92ff1e1c4fdd10a2e8b3541d8478c24aa16 (patch) | |
tree | 717fa0bdd3fa6c3970012a004b5c0f352cd95d37 /app/services | |
parent | dfc1f1dd66c19653ecfc71b904df4a8f6ccb64e3 (diff) | |
download | gitlab-ce-7f85e92ff1e1c4fdd10a2e8b3541d8478c24aa16.tar.gz |
Speed up obtaining Let's Encrypt certificates
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb b/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb index 3413a9e4612..58f795e639e 100644 --- a/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb +++ b/app/services/pages_domains/obtain_lets_encrypt_certificate_service.rb @@ -2,6 +2,14 @@ module PagesDomains class ObtainLetsEncryptCertificateService + # time for processing validation requests for acme challenges + # 5-15 seconds is usually enough + CHALLENGE_PROCESSING_DELAY = 1.minute.freeze + + # time LetsEncrypt ACME server needs to generate the certificate + # no particular SLA, usually takes 10-15 seconds + CERTIFICATE_PROCESSING_DELAY = 1.minute.freeze + attr_reader :pages_domain def initialize(pages_domain) @@ -14,6 +22,7 @@ module PagesDomains unless acme_order ::PagesDomains::CreateAcmeOrderService.new(pages_domain).execute + PagesDomainSslRenewalWorker.perform_in(CHALLENGE_PROCESSING_DELAY, pages_domain.id) return end @@ -23,6 +32,7 @@ module PagesDomains case api_order.status when 'ready' api_order.request_certificate(private_key: acme_order.private_key, domain: pages_domain.domain) + PagesDomainSslRenewalWorker.perform_in(CERTIFICATE_PROCESSING_DELAY, pages_domain.id) when 'valid' save_certificate(acme_order.private_key, api_order) acme_order.destroy! |