trellis-cloudflare-origin-ca
Trellis Cloudflare Origin CA
Добавьте Cloudflare Origin CA в Trellis как поставщика SSL.
Сделано с ♥ от Typist Tech
Trellis Cloudflare Origin CA — это проект с открытым исходным кодом и совершенно бесплатен для использования.
Тем не менее, поддерживать и развивать проект без финансовой поддержки очень сложно. Если у вас есть такая возможность, пожалуйста, подумайте о том, чтобы поддержать проект, используя ссылки ниже:
Добавьте 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. Нанимайте нас!
Требования
- Ansible 2.10 или выше
- Trellis@c86d8a0 или выше
- Cloudflare аккаунт
- Ubuntu 18.04 (Bionic) или 20.04 (Focal)
Установка
Добавьте эту роль в 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 сертификаты с другими конфигурациями:
- Удалите CA сертификаты с серверов
- Отозвите CA сертификаты через панель управления Cloudflare
- Повторно настройте серверы
key_size
устарел. Пожалуйста, удалите его из example.com
Чтобы избежать неправильной конфигурации, параметры key_type
(ECDSA или RSA) и key_size
(количество бит) устарели. Начиная с v0.8, эта роль генерирует только ключи ECDSA длиной 521 бит.
Если вы ранее генерировали CA сертификаты с другими конфигурациями:
- Удалите CA сертификаты с серверов
- Отозвите CA сертификаты через панель управления Cloudflare
- Повторно настройте серверы
Директории 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
.
Решение:
- Прочитайте Представляем Cloudflare Origin CA
- Ознакомьтесь с Authenticated Origin Pulls
- Поймите, что эта роль предназначена для Cloudflare Origin CA
- Поймите, что Cloudflare Origin CA и Authenticated Origin Pulls — это две разные вещи
- Прочитайте #34
- Обратитесь в поддержку 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 сертификаты с другими конфигурациями:
- Удалите CA сертификаты с серверов
- Отозвите CA сертификаты через панель управления Cloudflare
- Повторно настройте серверы
Почему ключ Cloudflare Origin CA записывается в лог, даже если cloudflare_origin_ca_no_log
равно true
?
Обратите внимание, что использование атрибута
no_log
не предотвращает отображение данных при отладке самого Ansible с помощью переменной окруженияANSIBLE_DEBUG
.
Идеален ли Cloudflare Origin CA?
Это выглядит потрясающе. Где я могу найти что-то подобное?
- Статьи в блоге Typist Tech
- Плагины WordPress от Tang Rufus на wp.org
- Другие проекты на GitHub профиле Typist Tech
- Подписывайтесь на рассылку новостей Typist Tech
- Подписывайтесь на Twitter аккаунт Tang Rufus
- Нанимайте Tang Rufus для создания вашего следующего удивительного сайта
Где я могу оставить пятизвёздочный отзыв?
Спасибо! Рад, что вам нравится. Важно знать, что кто-то использует этот проект. Пожалуйста, подумайте о следующем:
- Напишите твит о том, что вам понравилось, с упоминанием @TangRufus
- ★ поставьте звезду репозиторию на GitHub
- 👀 следите за репозиторием на GitHub
- пишите учебные материалы и блоги
- нанимайте Typist Tech
См. также
- WP Cloudflare Guard - Подключение WordPress к облачному файрволу Cloudflare, защита вашего сайта на уровне DNS. Автоматическое создание правил файрвола для блокировки опасных IP
- Корень Trellis Cloudflare Origin CA
- Происхождение Trellis Cloudflare Origin CA
- Cloudflare Origin CA
- Trellis SSL
- Включения Nginx в Trellis
- Ansible Vault
Запуск тестов
Запустите тесты:
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