INTEGRITY Dokumentace

mTLS

Při použití HTTPS, server předloží certifikát, aby se klient mohl ověřit a prokázat svou identitu. Pro ještě vyšší zabezpečení některé služby vyžadují, aby certifikát předložil i klient.

Tento proces, známý jako mTLS - přesouvá autentizaci na úroveň protokolu TLS, místo aby se řešila v kódu aplikace. Připojení od neautorizovaných klientů jsou místo toho odmítnuta již během TLS handshake.

Chcete-li při komunikaci se službou prezentovat klientský certifikát, vytvořte certifikát mTLS binding v souboru Wrangler vašeho projektu Workeru. To vašemu Workeru umožní předložit službě klientský certifikát vaším jménem.

Nejprve nahrajte do svého účtu certifikát a jeho privátní klíč pomocí wrangler mtls-certificate příkaz:

npx wrangler mtls-certificate upload --cert cert.pem --key key.pem --name my-client-cert

Poté aktualizujte soubor Wrangler svého projektu Worker a vytvořte vazbu na certifikát mTLS:

{
	"mtls_certificates": [
		{
			"binding": "MY_CERT",
			"certificate_id": "<CERTIFICATE_ID>"
		}
	]
}
[[mtls_certificates]]
binding = "MY_CERT"
certificate_id = "<CERTIFICATE_ID>"

Přidání vazby na certifikát mTLS zahrnuje proměnnou v prostředí Workeru, na které fetch() metoda je dostupná. Tento fetch() metoda používá standardní Fetch API a má naprosto stejnou signaturu jako globální fetch, ale při navazování TLS spojení vždy předloží klientský certifikát.

Rozhraní

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>;