← Cloudflare for Platforms / cloudflare-for-platforms / cloudflare-for-saas / security / certificate-management
Управление 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) и как настройка пользовательского имени хоста. Это означает следующее:
- Для пользовательских имён хостов, созданных через API, можно не задавать явное значение для
min_tls_version. В этом случае будет применяться значение, заданное как минимальная версия TLS для вашей зоны. Чтобы проверить, задана ли для конкретного пользовательского имени хоста отдельная минимальная версия TLS, используйте следующий вызов API.
Проверьте настройки TLS пользовательского имени хоста
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates WriteSSL and Certificates Read
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. Если у вас возникает сценарий, описанный в пункте выше, изменение через дашборд переопределит применявшуюся ранее конфигурацию на уровне зоны.
-
Для пользовательских имён хостов с включёнными подстановочными знаками прямое пользовательское имя хоста, которое вы создаёте (например,
saas-customer.test) будет использовать настройку, специфичную для этого имени хоста, тогда как остальные (sub1.saas-customer.test,sub2.saas-customer.test, и т. д.) по умолчанию будут использовать настройку уровня зоны.
Настройка
Minimum TLS version для вашей зоны
Minimum TLS version для пользовательского имени хоста
-
На панели управления Cloudflare перейдите к разделу Custom Hostnames страницу.
Перейдите в Custom Hostnames ↗ -
Найдите имя хоста, для которого нужно применить Minimum TLS Version. Выберите Изменить.
-
Нужную версию TLS выберите в разделе Minimum TLS Version и выберите Save.
В документации по API см. Свойства SSL пользовательского имени хоста. Помимо settings спецификации необходимо указать type и method в пределах ssl объект, как описано ниже.
- Сделайте
GETзапрос к Custom Hostname Details endpoint, чтобы проверить текущие значенияssl.typeиssl.method.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates WriteSSL and Certificates Read
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
},
}- Как только вы запишете эти значения, выполните
PATCHзапрос к Edit Custom Hostname endpoint, указав минимальную версию TLS, которую хотите задать, и тот жеtypeиmethodзначения, которые вы получили на предыдущем шаге.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates Write
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 предоставляет рекомендуемые значения и полный справочник по наборам шифров в нашей Документация по наборам шифров.
Ограничьте наборы шифров для своей зоны
Ограничьте наборы шифров для пользовательского имени хоста
В документации по API см. Свойства SSL пользовательского имени хоста. Помимо settings спецификации необходимо указать type и method в пределах ssl объект, как описано ниже.
- Сделайте
GETзапрос к Custom Hostname Details endpoint, чтобы проверить текущие значенияssl.typeиssl.method.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates WriteSSL and Certificates Read
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
},
}- Как только вы запишете эти значения, выполните
PATCHзапрос к Edit Custom Hostname endpoint, указав список разрешённых наборов шифров и тот жеtypeиmethodзначения, которые вы получили на предыдущем шаге.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates Write
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 объект, как описано ниже.
- Сделайте
GETзапрос к Custom Hostname Details endpoint, чтобы проверить текущие значенияssl.typeиssl.method.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates WriteSSL and Certificates Read
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
},
}- Как только вы запишете эти значения, выполните
PATCHзапрос к Edit Custom Hostname endpoint, указав список разрешённых наборов шифров и тот жеtypeиmethodзначения, которые вы получили на предыдущем шаге, но также иcustom_certificateиcustom_key.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:SSL and Certificates Write
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 для получения дополнительной информации о настройке оповещения.