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

Управление TLS

Взаимный TLS (mTLS) ↗ добавляет дополнительный уровень защиты соединений приложения за счёт проверки сертификатов на сервере и на клиенте. При разработке SaaS-приложения вы можете захотеть включить обязательный mTLS, чтобы защитить чувствительные конечные точки, связанные с обработкой платежей, обновлением базы данных и другими операциями.

Minimum TLS Version разрешает HTTPS-соединения только от посетителей, поддерживающих выбранную версию протокола TLS или более новую. Cloudflare рекомендует TLS 1.2 для соответствия требованиям Payment Card Industry (PCI) Security Standards Council. Как поставщик SaaS вы можете задавать минимальную версию TLS как для всей зоны в целом, так и для отдельных пользовательских имён хостов.

Наборы шифров представляют собой комбинацию шифров, используемых для согласования параметров безопасности во время рукопожатие SSL/TLS ↗. Как поставщик SaaS вы можете через API задавать конфигурации наборов шифров как для всей своей зоны в целом, так и для отдельных пользовательских имён хостов.

Включение mTLS

После того как вы добавлено пользовательское имя хоста, можно включить mTLS с помощью Cloudflare Access. В Панель управления Cloudflare ↗, перейдите в Zero Trust и добавить аутентификацию mTLS в несколько кликов.

Minimum TLS Version

Область действия

Minimum TLS version существует как настройка уровня зоны (на Edge Certificates ↗ странице в разделе Minimum TLS Version) и как настройка пользовательского имени хоста. Это означает следующее:

Проверьте настройки TLS пользовательского имени хоста

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
  • SSL and Certificates Read
Custom Hostname Details
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Пример ответа
  "success": true,
  "result": {
    "id": "<CUSTOM_HOSTNAME_ID>",
    "ssl": {
      "id": "<CERTIFICATE_ID>",
      "bundle_method": "ubiquitous",
      "certificate_authority": "<CERTIFICATE_AUTHORITY>",
      "custom_certificate": "",
      "custom_csr_id": "",
      "custom_key": "",
      "expires_on": "",
      "hosts": [
        "app.example.com",
        "*.app.example.com"
      ],
      "issuer": "",
      "method": "http",
      "settings": {},
      "signature": "SHA256WithRSA",
      "type": "dv",
      "uploaded_on": "2020-02-06T18:11:23.531995Z",
      "validation_errors": [
        {
          "message": "SERVFAIL looking up CAA for app.example.com"
        }
      ],
      "validation_records": [
        {
          "emails": [
            "[email protected]",
            "[email protected]"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "wildcard": false
    },
  }

Настройка

Minimum TLS version для вашей зоны

См. Minimum TLS version - SSL/TLS.

Minimum TLS version для пользовательского имени хоста

  1. На панели управления Cloudflare перейдите к разделу Custom Hostnames страницу.

    Перейдите в Custom Hostnames ↗
  2. Найдите имя хоста, для которого нужно применить Minimum TLS Version. Выберите Изменить.

  3. Нужную версию TLS выберите в разделе Minimum TLS Version и выберите Save.

В документации по API см. Свойства SSL пользовательского имени хоста. Помимо settings спецификации необходимо указать type и method в пределах ssl объект, как описано ниже.

  1. Сделайте GET запрос к Custom Hostname Details endpoint, чтобы проверить текущие значения ssl.type и ssl.method.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
  • SSL and Certificates Read
Custom Hostname Details
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Пример ответа
  "success": true,
  "result": {
    "id": "<CUSTOM_HOSTNAME_ID>",
    "ssl": {
      "id": "<CERTIFICATE_ID>",
      "bundle_method": "ubiquitous",
      "certificate_authority": "<CERTIFICATE_AUTHORITY>",
      "custom_certificate": "",
      "custom_csr_id": "",
      "custom_key": "",
      "expires_on": "",
      "hosts": [
        "app.example.com",
        "*.app.example.com"
      ],
      "issuer": "",
      "method": "http",
      "settings": {},
      "signature": "SHA256WithRSA",
      "type": "dv",
      "uploaded_on": "2020-02-06T18:11:23.531995Z",
      "validation_errors": [
        {
          "message": "SERVFAIL looking up CAA for app.example.com"
        }
      ],
      "validation_records": [
        {
          "emails": [
            "[email protected]",
            "[email protected]"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "wildcard": false
    },
  }
  1. Как только вы запишете эти значения, выполните PATCH запрос к Edit Custom Hostname endpoint, указав минимальную версию TLS, которую хотите задать, и тот же type и method значения, которые вы получили на предыдущем шаге.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
Edit Custom Hostname
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"ssl": {
				"method": "http",
				"type": "dv",
				"settings": {
						"min_tls_version:": "1.2"
				}
		}
	}'

Наборы шифров

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

Ограничьте наборы шифров для своей зоны

См. Настройка наборов шифров: SSL/TLS.

Ограничьте наборы шифров для пользовательского имени хоста

В документации по API см. Свойства SSL пользовательского имени хоста. Помимо settings спецификации необходимо указать type и method в пределах ssl объект, как описано ниже.

  1. Сделайте GET запрос к Custom Hostname Details endpoint, чтобы проверить текущие значения ssl.type и ssl.method.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
  • SSL and Certificates Read
Custom Hostname Details
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Пример ответа
  "success": true,
  "result": {
    "id": "<CUSTOM_HOSTNAME_ID>",
    "ssl": {
      "id": "<CERTIFICATE_ID>",
      "bundle_method": "ubiquitous",
      "certificate_authority": "<CERTIFICATE_AUTHORITY>",
      "custom_certificate": "",
      "custom_csr_id": "",
      "custom_key": "",
      "expires_on": "",
      "hosts": [
        "app.example.com",
        "*.app.example.com"
      ],
      "issuer": "",
      "method": "http",
      "settings": {},
      "signature": "SHA256WithRSA",
      "type": "dv",
      "uploaded_on": "2020-02-06T18:11:23.531995Z",
      "validation_errors": [
        {
          "message": "SERVFAIL looking up CAA for app.example.com"
        }
      ],
      "validation_records": [
        {
          "emails": [
            "[email protected]",
            "[email protected]"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "wildcard": false
    },
  }
  1. Как только вы запишете эти значения, выполните PATCH запрос к Edit Custom Hostname endpoint, указав список разрешённых наборов шифров и тот же type и method значения, которые вы получили на предыдущем шаге.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
Edit Custom Hostname
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"ssl": {
				"method": "http",
				"type": "dv",
				"settings": {
						"ciphers": [
								"ECDHE-ECDSA-AES128-GCM-SHA256",
								"ECDHE-RSA-AES128-GCM-SHA256"
						]
				}
		}
	}'

Ограничьте наборы шифров для пользовательского имени хоста с пользовательским сертификатом

В документации по API см. Свойства SSL пользовательского имени хоста. Если у пользовательского имени хоста используется собственный сертификат, его нужно включить в Вызов PATCH для Edit Custom Hostname, с settings спецификации, где необходимо указать type и method в пределах ssl объект, как описано ниже.

  1. Сделайте GET запрос к Custom Hostname Details endpoint, чтобы проверить текущие значения ssl.type и ssl.method.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
  • SSL and Certificates Read
Custom Hostname Details
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Пример ответа
  "success": true,
  "result": {
    "id": "<CUSTOM_HOSTNAME_ID>",
    "ssl": {
      "id": "<CERTIFICATE_ID>",
      "bundle_method": "ubiquitous",
      "certificate_authority": "<CERTIFICATE_AUTHORITY>",
      "custom_certificate": "",
      "custom_csr_id": "",
      "custom_key": "",
      "expires_on": "",
      "hosts": [
        "app.example.com",
        "*.app.example.com"
      ],
      "issuer": "",
      "method": "http",
      "settings": {},
      "signature": "SHA256WithRSA",
      "type": "dv",
      "uploaded_on": "2020-02-06T18:11:23.531995Z",
      "validation_errors": [
        {
          "message": "SERVFAIL looking up CAA for app.example.com"
        }
      ],
      "validation_records": [
        {
          "emails": [
            "[email protected]",
            "[email protected]"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "wildcard": false
    },
  }
  1. Как только вы запишете эти значения, выполните PATCH запрос к Edit Custom Hostname endpoint, указав список разрешённых наборов шифров и тот же type и method значения, которые вы получили на предыдущем шаге, но также и custom_certificate и custom_key.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • SSL and Certificates Write
Edit Custom Hostname
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"ssl": {
				"method": "http",
				"type": "dv",
				"custom_certificate": "<CERTIFICATE_STRING>",
				"custom_key": "<CERTIFICATE_PRIVATE_KEY>",
				"settings": {
						"ciphers": [
								"ECDHE-ECDSA-AES128-GCM-SHA256",
								"ECDHE-RSA-AES128-GCM-SHA256"
						],
						"min_tls_version": "1.2"
				}
		}
	}'

Оповещения для сертификатов mutual TLS

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

Оповещение Access об истечении срока действия сертификата mTLS

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

Доступ клиентов, использующих клиентские сертификаты для взаимной аутентификации TLS. Это уведомление будет отправлено за 30 и 14 дней до истечения срока действия сертификата.

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

Нет.

Входит в

Покупка Доступ и/или Cloudflare for SaaS.

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

Загрузите обновлённый сертификат.

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