コンテンツにスキップ

mTLS

HTTPSを使用する際、サーバーはクライアントが自分の身元を証明するために認証するための証明書を提示します。さらに厳重なセキュリティを求めるサービスでは、クライアントが証明書も提示することを要求します。

このプロセスはmTLSとして知られ、認証をアプリケーションコードで管理するのではなく、TLSのプロトコルに移行します。認可されていないクライアントからの接続は、TLSハンドシェイク中に拒否されます。

サービスと通信する際にクライアント証明書を提示するには、ワーカープロジェクトのwrangler.tomlファイルにmTLS証明書のバインディングを作成します。これにより、ワーカーがあなたの代わりにサービスにクライアント証明書を提示できるようになります。

まず、wrangler mtls-certificateコマンドを使用して、証明書とその秘密鍵をアカウントにアップロードします:

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

次に、ワーカープロジェクトのwrangler.tomlファイルを更新してmTLS証明書のバインディングを作成します:

wrangler.toml
mtls_certificates = [
{ binding = "MY_CERT", certificate_id = "<CERTIFICATE_ID>" }
]

mTLS証明書のバインディングを追加すると、fetch()メソッドが利用可能なワーカーの環境に変数が含まれます。このfetch()メソッドは標準のFetch APIを使用し、グローバルfetchと全く同じシグネチャを持ちますが、TLS接続を確立する際には常にクライアント証明書を提示します。

インターフェース

export default {
async fetch(request, environment) {
return await environment.MY_CERT.fetch("https://a-secured-origin.com");
},
};