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

Для каждого имени хоста

При включении Authenticated Origin Pulls (AOP) для отдельного имени хоста весь проксируемый трафик к указанному имени хоста проходит аутентификацию на веб-сервере источника с помощью загруженного вами сертификата. Для аутентификации подключений от Cloudflare можно использовать клиентские сертификаты из вашего Private PKI.

Глобальный, на уровне зоны, и AOP для отдельных хостов являются независимыми настройками. Включение или отключение одной из них не влияет на другую. Сертификаты для отдельных хостов имеют приоритет над сертификатами уровня зоны и глобальными сертификатами для указанного хоста.

Перед началом работы

Ниже приведен пример создания пользовательского сертификата с помощью OpenSSL. Корневой сертификат CA, который используется для выпуска пользовательского сертификата, должен совпадать с CA, который вы будете загрузить на ваш ориджин-сервер.

Пример для OpenSSL

  1. Выполните следующую команду, чтобы создать закрытый ключ RSA длиной 4096 бит с шифрованием AES-256. Введите кодовую фразу, когда будет предложено.
openssl genrsa -aes256 -out rootca.key 4096
  1. Создайте корневой сертификат CA. При появлении запроса укажите информацию, которая должна быть включена в сертификат. Для поля Common Name поле используйте в качестве значения имя домена, а не имя хоста.
openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1826 -out rootca.crt
  1. Создайте запрос на подпись сертификата (CSR). При появлении запроса укажите информацию, которая должна быть включена в запрос. Для поля Common Name поле используйте в качестве значения имя хоста.
openssl req -new -nodes -out cert.csr -newkey rsa:4096 -keyout cert.key
  1. Подпишите сертификат с помощью rootca.key и rootca.crt созданные на предыдущих шагах.
openssl x509 -req -in cert.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out cert.crt -days 730 -sha256 -extfile ./cert.v3.ext
  1. Убедитесь, что файл расширений сертификата cert.v3.ext указывает следующее:
basicConstraints=CA:FALSE

1. Загрузка пользовательского сертификата

  1. Перейдите в Origin Server страницу.

    Перейдите в Origin Server ↗
  2. Выберите Authenticated Origin Pulls на вкладке.

  3. В Для каждого имени хоста разделе выберите Загрузить сертификат.

  4. Вставьте сертификат и приватный ключ, а затем выберите Продолжение.

  5. Просмотрите сведения о сертификате, сохраните ID сертификата для дальнейшего использования и выберите Продолжение.

  6. На Привязка имён хостов странице введите полное доменное имя (FQDN), которое должно использовать этот сертификат, и выберите Add для каждого из них. Также можно пропустить этот шаг и связать имена хостов позже.

  7. Выберите Save для подтверждения.

Используйте Загрузка клиентского сертификата для имени хоста конечную точку, чтобы загрузить пользовательский сертификат.

MYCERT="$(cat cert.crt|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')"
MYKEY="$(cat cert.key|perl -pe 's/\r?\n/\\n/'|sed -e's/..$//')"

request_body=$(< <(cat <<EOF
{
"certificate": "$MYCERT",
"private_key": "$MYKEY",
"bundle_method":"ubiquitous"
}
EOF
))

# Push the certificate

curl --silent \
"https://api.cloudflare.com/client/v4/zones/$ZONEID/origin_tls_client_auth/hostnames/certificates" \
--header "Content-Type: application/json" \
--header "X-Auth-Email: $MYAUTHEMAIL" \
--header "X-Auth-Key: $MYAUTHKEY" \
--data "$request_body"

В ответе API сохраните сертификат id так как это потребуется на шаге 3.

2. Настройка источника для приёма клиентских сертификатов

После установки сертификата настройте веб-сервер источника на прием клиентских сертификатов.

Ознакомьтесь с приведёнными ниже примерами для Apache и NGINX или обратитесь к документации вашего исходного веб-сервера, например, HAProxy, Traefik, Caddy.

Пример для Apache

SSLCACertificateFile /path/to/origin-pull-ca.pem

В этом примере сертификат должен быть сохранён в /path/to/origin-pull-ca.pem.

Пример NGINX

ssl_verify_client optional;
ssl_client_certificate /etc/nginx/certs/cloudflare.crt;

В этом примере сертификат должен быть сохранён в /etc/nginx/certs/cloudflare.crt.

На этом этапе также стоит включить журналирование на источнике, чтобы убедиться в работоспособности настройки.

3. Включите Authenticated Origin Pulls для указанного хоста

  1. Перейдите в Origin Server страницу.

    Перейдите в Origin Server ↗
  2. Выберите Authenticated Origin Pulls на вкладке.

  3. В Для каждого имени хоста разделе найдите сертификат, который следует использовать, и свяжите с ним имя хоста.

Если на шаге 2 вы настроили логирование на исходном сервере, проверьте и убедитесь, что Authenticated Origin Pulls работает.

Используйте Включение или отключение имени хоста для аутентификации клиента конечную точку, чтобы включить Authenticated Origin Pulls для конкретных имён хостов.

Если на шаге 2 вы настроили логирование на исходном сервере, проверьте и убедитесь, что Authenticated Origin Pulls работает.

4. Включите проверку валидации на источнике

Когда вы убедитесь, что всё работает как ожидается для вашей конкретной конфигурации источника, настройте источник на принудительное применение аутентификации.

Пример для Apache

SSLVerifyClient require

Пример NGINX

ssl_verify_client on;

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

5. (Необязательно) Настройте оповещения об истечении срока действия

Вы можете настроить оповещения, чтобы получать уведомления до истечения срока действия ваших сертификатов AOP.

Оповещение об истечении срока действия сертификата Authenticated Origin Pulls на уровне имени хоста

Для кого это предназначено?

Клиенты, которые загружают собственный сертификат для использования с Authenticated Origin Pull (AOP) на уровне хоста, чтобы защитить соединения от Cloudflare к их серверу-источнику. Уведомления об истечении срока действия сертификата AOP отправляются за 30 и 14 дней до истечения срока действия сертификата.

Другие параметры / фильтры

Нет.

Входит в

Authenticated Origin Pull.

Что делать при получении такого уведомления?

Загрузите обновлённый сертификат, чтобы использовать его для AOP на уровне имени хоста.

См. Cloudflare Notifications для получения дополнительной информации о настройке оповещения.

Дополнительные параметры

См. Управление сертификатами для дополнительных параметров.

Сведения об удалении конфигурации см. в Откат.