Настройка Letsencrypt + Cloudflare

Я работаю над многими сторонними проектами и пытаюсь настроить https для каждого из них. Поскольку я не могу позволить себе платить за сертификаты, я использую Letsencrypt. Я также использую Cloudflare на случай скачков трафика. Я начинаю с получения сертификата SSL с помощью Letsencrypt, а затем помещаю перед ним Cloudflare.

Проблема в том, что когда приходит время продлевать сертификат Letsencrypt, мне приходится отключать Cloudflare, чтобы делать это каждый раз, потому что IP-адрес видит теперь другой (IP Cloudflare вместо IP моего сервера).

Я знаю, что Cloudflare предоставляет SSL бесплатно, и пока у него есть https-соединение с моим сервером, это нормально, так что технически мне даже не нужно обновлять мой сертификат SSL вообще. Но я бы хотел сохранить свой сервер ' s Сертификат SSL обновлен, поэтому у меня есть возможность отключить Cloudflare в любое время и при этом оставаться включенным и иметь действующий сертификат.

Я делаю что-то не так в моем процессе? Есть ли вариант, который я могу использовать в letsencrypt refresh, чтобы лучше справиться с этим, вместо того, чтобы входить в Cloudflare, чтобы выключить его, подождать несколько минут, запустить обновление, а затем снова включить Cloudflare каждые 2 месяца?

[править] По некоторым причинам я получил отрицательное голосование, возможно, потому, что я не включил сообщение об ошибке в свою настройку. Вот он.

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/[mydomain].com.conf
-------------------------------------------------------------------------------
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for [mydomain].com
Waiting for verification...
Cleaning up challenges
Attempting to renew cert from /etc/letsencrypt/renewal/[mydomain].com.conf produced an unexpected error: Failed authorization procedure. [mydomain].com (tls-sni-01): urn:acme:error:tls :: The server experienced a TLS error during domain verification :: Failed to connect to 104.18.55.209:443 for tls-sni-01 challenge. Skipping.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: [mydomain].com
   Type:   tls
   Detail: Failed to connect to 104.18.55.209:443 for tls-sni-01
   challenge

Очевидно, 104.18.55.209 - это IP Cloudflare. Он не может подключиться к нему для выполнения задания.

[править 2] Тим сказал передать правила страницы CloudFlare и мой домен. Мой домен - memechicken.com, и мои правила страницы CF просто пусты. В основном все по умолчанию. И, наконец, вот мои настройки на вкладке Crypto, которые должны быть актуальными:

Crypto screen 1

Crypto screen 2

Все по умолчанию. Я ничего не менял.

-1
задан 30 May 2017 в 08:47
1 ответ

Я использую Let's Encrypt и CloudFlare. Мои сертификаты обновляются автоматически, если CloudFlare активен и работает. Я использую Acmetool , потому что Certbot плохо работал в Amazon Linux, когда я пробовал его в 2015 году.

Насколько мне известно, IP-адрес сервера не имеет значения. Let's Encrypt связывается с вашим сервером по доменному имени. Если бы у вас был традиционный сертификат с доменом сопоставления 1: 1 с сертификатом, возможно, возникла бы проблема (я никогда не пробовал этого, поэтому не знаю),но не с LE.

У меня есть статья о настройке Let's Encrypt с CloudFlare , которая может показаться вам интересной или полезной.

Обновление Вот моя конфигурация Nginx, позволяющая Let's Encrypt подключаться через http, перенаправляя все остальное на https. Вы сможете сделать что-то подобное в Apache, но я не знаю, как.

# Redirect all variations to https://www domain
server {
  listen 80;
  server_name example.com www.example.com;

  # Let's Encrypt certificates with Acmetool
  location /.well-known/acme-challenge/ {
    alias /var/www/.well-known/acme-challenge/;
  }

  location / {
    return 301 https://www.photographerstechsupport.com$request_uri;
  }
}
2
ответ дан 5 December 2019 в 19:22

Теги

Похожие вопросы