← Cloudflare SSL/TLS / ssl
Клиентские сертификаты (mTLS)
Стандартный TLS подтверждает клиенту подлинность сервера. Mutual TLS (mTLS) добавляет вторую проверку: сервер, в свою очередь, подтверждает подлинность клиента с помощью клиентского сертификата. Это позволяет ограничить доступ только для устройств или служб, которые предъявляют действительный сертификат.
Используйте инфраструктуру открытых ключей (PKI) Cloudflare, чтобы создавать клиентские сертификаты, или использование собственного центра сертификации (BYOCA).
Взаимный TLS (mTLS) аутентификация представляет собой распространенную практику безопасности: она использует клиентские сертификаты для обеспечения взаимной защищенности и доверия трафика между клиентом и сервером. mTLS также позволяет запросам, не прошедшим аутентификацию через поставщика удостоверений, например от устройств интернета вещей (IoT), подтвердить, что они могут обращаться к нужному ресурсу.
Как это работает
Если у имени хоста есть mTLS включён, Cloudflare требует от подключающихся клиентов предъявить действительный сертификат. Клиентские сертификаты устанавливаются на устройствах или в сервисах, которым нужно предоставить доступ.
Cloudflare проверяет клиентские сертификаты по CA, заданным на уровне аккаунта. Поскольку проверка выполняется на уровне аккаунта, одни и те же сертификаты работают для нескольких доменов в рамках вашего аккаунта, если mTLS включён для каждого имени хоста (например, host.example.com, name.example.net, secure.anotherdomain.test).
На уровне аккаунта удостоверяющими центрами (CA) могут быть:
- Удостоверяющий центр, управляемый Cloudflare: это вариант по умолчанию. Сертификаты и связанные с ними имена хостов перечислены на выпущенный Cloudflare вкладке панель Client Certificates ↗.
- BYOCA сертификаты: доступно на тарифе Enterprise. Сертификаты и связанные с ними имена хостов перечислены на BYOCA вкладке панель Client Certificates ↗.
Затем Cloudflare сохраняет результат проверки в поле cf.tls_client_auth.cert_verified:
- Успешно:
cf.tls_client_auth.cert_verifiedэтоtrue, а сведения о клиентском сертификате можно найти в определённые поля mTLS. - Сбой:
cf.tls_client_auth.cert_verifiedэтоfalse.
Сценарии использования
mTLS поддерживает несколько шаблонов реализации в зависимости от того, что вы защищаете. Для более широкого обзора обратитесь к учебный курс по mTLS.
- Безопасность приложений : ограничение доступа к веб-приложению на основе клиентских сертификатов
- mTLS для Zero Trust : аутентификация пользователей и сервисов через Cloudflare Access
- mTLS с API Shield : проверка клиентов API с помощью аутентификации на основе сертификатов
- привязка Workers для mTLS : предъявление клиентского сертификата при подключении Worker к внешнему сервису
Помимо привязки mTLS для Workers, любая из перечисленных выше реализаций может использовать собственный удостоверяющий центр вместо управляемого Cloudflare. Подробнее см. Bring your own CA.
mTLS и Workers
Используйте привязка Workers для mTLS когда вашему Worker нужно предъявить клиентский сертификат внешнему сервису. Если же требуется аутентифицировать запросы от клиента к вашему Worker, см. обычный mTLS для безопасности приложений реализация.
flowchart LR
accTitle: mTLS from client to worker versus mTLS from worker to external service
accDescr: Diagram showing two different implementations that can be considered for mTLS with Cloudflare Workers.
A[Client] <--App security mTLS--> B((Cloudflare))<--mTLS worker binding--> C[(External service)]