trellis-cloudflare-origin-ca

Trellis Cloudflare Origin CA

Ansible Role GitHub tag (latest SemVer) Ansible Role Downloads Ansible Quality Score CircleCI License Twitter Follow @TangRufus Hire Typist Tech

Добавьте Cloudflare Origin CA в Trellis как поставщика SSL.

Сделано с ♥ от Typist Tech


Trellis Cloudflare Origin CA — это проект с открытым исходным кодом и совершенно бесплатен для использования.

Тем не менее, поддерживать и развивать проект без финансовой поддержки очень сложно. Если у вас есть такая возможность, пожалуйста, подумайте о том, чтобы поддержать проект, используя ссылки ниже:

GitHub via Sponsor Sponsor via PayPal More Sponsorship Information


Добавьте Cloudflare Origin CA в Trellis как поставщика SSL

Зачем?

Краткий ответ: Чтобы сохранить подключение между Cloudflare и вашими серверами приватным и защищённым от вмешательства.

Долгий ответ:

Режим Flexible SSL от Cloudflare — это стандартный режим для сайтов Cloudflare на бесплатном плане. Это значит, что трафик от браузеров к Cloudflare будет зашифрован, но трафик от Cloudflare к вашему серверу останется незашифрованным. Чтобы воспользоваться нашим режимом Full и Strict SSL, который шифрует соединение между Cloudflare и вашим сервером, необходимо установить сертификат на сервер.

Блог Cloudflare - Безопасность соединения с сервером с Universal SSL

Каковы преимущества Cloudflare Origin CA по сравнению с Let's Encrypt?

Чтобы получить сертификаты от Let's Encrypt, вам сначала нужно отключить Cloudflare, потому что он скрывает реальные IP-адреса серверов и вызывает сбой проверки Let's Encrypt. Использование Cloudflare Origin CA упрощает эту задачу.

Каковы преимущества Cloudflare Origin CA по сравнению с другими публичными сертификатами?

Смотрите Представляем Cloudflare Origin CA на блоге Cloudflare.

Переменные роли

# group_vars/<environment>/vault.yml
# Этот файл должен быть зашифрован. Смотрите: https://roots.io/trellis/docs/vault/
##########################################################################

# Ключ Cloudflare Origin CA
# Не путать с глобальным API ключом Cloudflare
# Смотрите: https://blog.cloudflare.com/cloudflare-ca-encryption-origin/#iiobtainyourcertificateapitoken
vault_cloudflare_origin_ca_key: v1.0-xxxxxxxxxxx

# group_vars/<environment>/main.yml
###################################

# Указывает желаемое состояние пакета.
# `latest` гарантирует, что будет установлена последняя версия.
# `present` не обновляет, если уже установлено.
# Возможные значения: present|latest
# По умолчанию: latest
cfca_package_state: present

# Нужно ли скрывать результаты чувствительных задач, которые
# могут включать ключ Cloudflare Origin CA в открытом виде.
# Возможные значения: true|false
# По умолчанию: false
cloudflare_origin_ca_no_log: true

# group_vars/<environment>/wordpress_sites.yml
##############################################

wordpress_sites:
  example.com:
    # Ваш аккаунт Cloudflare должен владеть всеми этими доменами
    site_hosts:
      - canonical: example.com
        redirects:
          - hi.example.com
          - hello.another-example.com
    ssl:
      # SSL должен быть включен
      enabled: true
      # OCSP stapлинг должен быть отключен
      stapling_enabled: false
      # Используйте эту роль для генерации сертификата Cloudflare Origin CA
      provider: cloudflare-origin-ca
    # Следующие параметры являются необязательными
    cloudflare_origin_ca:
      # Количество дней, в течение которых выданный сертификат будет действительным. Допустимые варианты: 7, 30, 90, 365 (1 год), 730 (2 года), 1095 (3 года), 5475 (15 лет).
      # По умолчанию: 5475
      days: 7
      # Список полных доменных имен, которые будут включены в сертификат как альтернативные имена.
      # По умолчанию: Все канонические и перенаправленные домены
      # В вышеприведенном примере: example.com, hi.example.com, hello.another-example.com
      hostnames:
        - example.com
        - '*.example.com'
        - '*.another-example.com'

Typist Tech готов построить ваш следующий удивительный сайт на WordPress. Нанимайте нас!


Требования

Установка

Добавьте эту роль в galaxy.yml:

- src: TypistTech.trellis-cloudflare-origin-ca # Чувствительно к регистру!
  version: 0.8.0 # Проверьте наличие последней версии!

Запустите $ trellis galaxy install

Изменение плейбука Trellis

Добавьте эту роль в server.yml сразу после role: wordpress-setup:

    roles:
      # ...
-     - { role: wordpress-setup, tags: [wordpress, wordpress-setup, letsencrypt] }
+     - { role: wordpress-setup, tags: [wordpress, wordpress-setup, letsencrypt, cloudflare-origin-ca] }
+     - { role: TypistTech.trellis-cloudflare-origin-ca, tags: [cloudflare-origin-ca, wordpress-setup], when: sites_using_cloudflare_origin_ca | count }
      # ...

Примечание: role: wordpress-setup помечена тегом cloudflare-origin-ca.

Включения Nginx

Эта роль создаёт шаблоны директив SSL для Nginx и сохраняет их в {{ nginx_path }}/includes.d/{{ item.key }}/cloudflare-origin-ca.conf. Trellis включает этот файл по умолчанию здесь и здесь, никаких дополнительных действий не требуется.

Если вы используете дочерние шаблоны Nginx, добавьте эту строку в ваши блоки сервера:

include includes.d/{{ item.key }}/cloudflare-origin-ca.conf;

Распространённые ошибки

Нет сайта, использующего Cloudflare Origin CA

Очевидно, не следует запускать эту роль, если вы не используете Cloudflare Origin CA.

vault_cloudflare_origin_ca_key не определён

Зашифруйте ваш ключ Cloudflare Origin CA в group_vars/<environment>/vault.yml. Смотрите переменные роли.

example.com использует Cloudflare Origin CA, но OCSP stapling включён

... вы пытаетесь использовать OCSP stapлинг с Origin CA. В данный момент OCSP не поддерживается с Origin CA, поэтому вы должны удалить директиву ssl_staping для хоста, на котором вы используете сертификат Origin CA...

--- Поддержка Cloudflare

Cloudflare Origin CA не поддерживает OCSP stapling. Отключите OCSP stapling для всех сайтов, использующих Cloudflare Origin CA. Смотрите переменные роли.

key_type устарел. Пожалуйста, удалите его из example.com

Чтобы избежать неправильной конфигурации, параметры key_type (ECDSA или RSA) и key_size (количество бит) устарели. Начиная с v0.8, эта роль генерирует только ключи ECDSA длиной 521 бит.

Если вы ранее генерировали CA сертификаты с другими конфигурациями:

  1. Удалите CA сертификаты с серверов
  2. Отозвите CA сертификаты через панель управления Cloudflare
  3. Повторно настройте серверы

key_size устарел. Пожалуйста, удалите его из example.com

Чтобы избежать неправильной конфигурации, параметры key_type (ECDSA или RSA) и key_size (количество бит) устарели. Начиная с v0.8, эта роль генерирует только ключи ECDSA длиной 521 бит.

Если вы ранее генерировали CA сертификаты с другими конфигурациями:

  1. Удалите CA сертификаты с серверов
  2. Отозвите CA сертификаты через панель управления Cloudflare
  3. Повторно настройте серверы

Директории Nginx не включены

Убедитесь, что у вас есть roots/trellis@f2b8107 или более поздняя версия.

400 Bad Request - Не был отправлен необходимый SSL сертификат

Симптомы:

  • Сервер возвращает "400 Bad Request - Не был отправлен необходимый SSL сертификат" для всех запросов
  • Nginx записывает "клиент не отправил необходимый SSL сертификат при чтении заголовков запроса клиента, клиент: [скрыто], сервер: [скрыто], запрос: "GET / HTTP/1.1", хост: "[скрыто]""
  • ssl_verify_client on; где-то в конфигурационных файлах Nginx
  • Использование client_cert_url в wordpress_sites.yml, т.е: roots/trellis#869

Причина:

Ваша конфигурация Authenticated Origin Pulls неправильна.

Факт:

Эта роль не имеет отношения к Authenticated Origin Pulls или ssl_verify_client.

Решение:

  1. Прочитайте Представляем Cloudflare Origin CA
  2. Ознакомьтесь с Authenticated Origin Pulls
  3. Поймите, что эта роль предназначена для Cloudflare Origin CA
  4. Поймите, что Cloudflare Origin CA и Authenticated Origin Pulls — это две разные вещи
  5. Прочитайте #34
  6. Обратитесь в поддержку Cloudflare, если у вас есть вопросы

Часто задаваемые вопросы

Почему разрешены только ключи ECDSA длиной 521 бит?

Я полагаю, вы хотите настроить Authenticated Origin Pulls с Cloudflare. Я бы порекомендовал использовать ECDSA, так как эллиптические кривые обеспечивают ту же безопасность с меньшими вычислительными затратами.

Узнайте больше о ECDSA: алгоритм цифровой подписи для лучшего интернета В вышеупомянутой статье также упоминается, что: Согласно рекомендациям ECRYPT II по длине ключа, ключ эллиптической кривой длиной 256 бит предоставляет такую же защиту, как асимметричный ключ длиной 3248 бит. Обычно RSA ключи в сертификатах для сайтов имеют длину 2048 бит. Поэтому, я думаю, использование 256-битного ECDSA будет хорошим выбором.

--- Поддержка Cloudflare, сентябрь 2017 года

Чтобы избежать неправильной конфигурации, параметры key_type (ECDSA или RSA) и key_size (бит) устарели. Начиная с v0.8, эта роль генерирует только ключи ECDSA длиной 521 бит.

Если вы ранее генерировали CA сертификаты с другими конфигурациями:

  1. Удалите CA сертификаты с серверов
  2. Отозвите CA сертификаты через панель управления Cloudflare
  3. Повторно настройте серверы

Почему ключ Cloudflare Origin CA записывается в лог, даже если cloudflare_origin_ca_no_log равно true?

Обратите внимание, что использование атрибута no_log не предотвращает отображение данных при отладке самого Ansible с помощью переменной окружения ANSIBLE_DEBUG.

--- Документация Ansible

Идеален ли Cloudflare Origin CA?

Это выглядит потрясающе. Где я могу найти что-то подобное?

Где я могу оставить пятизвёздочный отзыв?

Спасибо! Рад, что вам нравится. Важно знать, что кто-то использует этот проект. Пожалуйста, подумайте о следующем:

См. также

Запуск тестов

Запустите тесты:

ansible-playbook -vvv -i 'localhost,' --syntax-check tests/test.yml
ansible-lint -vv .

Отзывы

Пожалуйста, оставьте отзыв! Мы хотим, чтобы этот проект был максимально полезным. Пожалуйста, подайте заявку и укажите, что вам нравится и что нет, или сделайте форк проекта и отправьте запросы на изменение. Ни одна проблема не слишком мала.

Уязвимости безопасности

Если вы обнаружите уязвимость безопасности в этом проекте, пожалуйста, напишите нам на [email protected]. Все уязвимости безопасности будут быстро устранены.

Авторы

Trellis Cloudflare Origin CA является проектом Typist Tech и поддерживается Tang Rufus, независимым разработчиком доступным для нанятия.

Особая благодарность команде Roots, благодаря которой Trellis стал возможным.

Полный список участников можно найти здесь.

Лицензия

Trellis Cloudflare Origin CA выпущен под лицензией MIT.

О проекте

Add Cloudflare Origin CA to Trellis as a SSL provider

Установить
ansible-galaxy install TypistTech/trellis-cloudflare-origin-ca
Лицензия
mit
Загрузки
4171
Владелец