← Cloudflare Workers / workers / runtime-apis / bindings
mTLS
При использовании HTTPS ↗, сервер предъявляет сертификат, чтобы клиент мог его проверить и подтвердить подлинность сервера. Для еще более высокого уровня безопасности некоторые сервисы требуют, чтобы клиент тоже предъявил сертификат.
Этот процесс, известный как mTLS ↗ - переносит аутентификацию на уровень протокола TLS вместо управления ею в коде приложения. Соединения от неавторизованных клиентов отклоняются уже во время TLS-рукопожатия.
Чтобы предъявлять клиентский сертификат при обращении к сервису, создайте сертификат mTLS привязка в файле Wrangler вашего проекта Worker. Это позволит вашему Worker предъявлять сервису клиентский сертификат от вашего имени.
Сначала загрузите сертификат и его закрытый ключ в свой аккаунт с помощью wrangler mtls-certificate команда:
npx wrangler mtls-certificate upload --cert cert.pem --key key.pem --name my-client-certЗатем обновите файл Wrangler проекта Worker, чтобы создать привязку сертификата mTLS:
{
"mtls_certificates": [
{
"binding": "MY_CERT",
"certificate_id": "<CERTIFICATE_ID>"
}
]
}[[mtls_certificates]]
binding = "MY_CERT"
certificate_id = "<CERTIFICATE_ID>"При добавлении привязки сертификата mTLS в окружение Worker добавляется переменная, на которой fetch() метод доступен. Этот fetch() метод использует стандартный Fetch API и имеет точно такую же сигнатуру, как глобальный fetch, но всегда предоставляет клиентский сертификат при установлении TLS-соединения.
Интерфейс
export default {
async fetch(request, environment) {
return await environment.MY_CERT.fetch("https://a-secured-origin.com");
},
};interface Env {
MY_CERT: Fetcher;
}
export default {
async fetch(request, environment): Promise<Response> {
return await environment.MY_CERT.fetch("https://a-secured-origin.com")
}
} satisfies ExportedHandler<Env>;