Настроить certbot с помощью app.yml?

Здравствуйте,

Мой сайт использует Cloudflare, и всё работает отлично, но при проверке через https checker я вижу:

https 443: Ошибка: Сбой вызова SSPI, см. внутреннее исключение.

Я планирую отключить SSL Cloudflare и использовать certbot вместо него, но мне нужно установить модуль certbot с поддержкой Cloudflare, как указано ниже:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  -d example.com \
  -d www.example.com

Где я могу разместить эти команды certbot в шаблонах Discourse или в файле app.yml?

Также должен существовать файл для доступа к Cloudflare, и его права доступа должны быть установлены как chmod 600:

~/.secrets/certbot/cloudflare.ini

Пожалуйста, подскажите, как этого достичь.

Спасибо!

Как вы установили Discourse? При стандартной установке по умолчанию вы получаете сертификат от Let’s Encrypt. Однако он не будет работать, если перед ним стоит Cloudflare.

Вы можете изучить шаблон Let’s Encrypt и изменить его так, чтобы он соответствовал вашим предложениям.

Привет, Джей,

Верно, я работаю над этим, но, к сожалению, у меня нет большого опыта в программировании или написании bash-скриптов для решения этой задачи… Я не нашёл ни одного модуля с certbot и Let’s Encrypt для этого… Возможно, мы сможем добавить наш код именно в эту строку:

          # Попробовать выдать сертификат снова, если что-то пойдёт не так
          issue_cert "4096" "--force"
        fi

        LE_WORKING_DIR="${LETSENCRYPT_DIR}" $$ENV_LETSENCRYPT_DIR/acme.sh \
          --installcert \
          -d $$ENV_DISCOURSE_HOSTNAME \
          --fullchainpath /shared/ssl/$$ENV_DISCOURSE_HOSTNAME.cer \
          --keypath /shared/ssl/$$ENV_DISCOURSE_HOSTNAME.key \
          --reloadcmd "sv reload nginx"

с

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  -d example.com \
  -d www.example.com

Надеюсь, кто-то с опытом в программировании сможет помочь нам интегрировать этот код с сертификатом Let’s Encrypt.

Нет причин использовать certbot с Discourse. Стандартное руководство по установке автоматически предоставит сертификат let’s encrypt.

Причина заключается в обеспечении совместимости SSL-сертификатов Let’s Encrypt с CloudFlare.