ClaudeCloudflare Developer PlatformMar 27, 2026, 12:00 AM

Workers - New RFC 9440 mTLS certificate fields in Workers

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

claudeenmodel: claude-sonnet-4-20250514

Cloudflare Workers adds RFC 9440 mTLS certificate fields

Key Points

  • Four new RFC 9440 mTLS certificate fields added to Workers
  • Direct certificate forwarding without custom parsing
  • Size limits: 10KB for certs, 16KB for chains

Summary

Cloudflare Workers now provides four new fields in request.cf.tlsClientAuth for handling mutual TLS (mTLS) client certificates. These fields encode client certificates and intermediate chains in RFC 9440 format, enabling direct forwarding to origins without custom parsing.

Key Points

  • New RFC 9440 fields: certRFC9440, certRFC9440TooLarge, certChainRFC9440, certChainRFC9440TooLarge
  • Size limits: Client certificates limited to 10KB, intermediate chains to 16KB
  • Direct forwarding: Compatible with Client-Cert and Client-Cert-Chain HTTP headers
  • Error handling: Boolean flags indicate when certificates exceed size limits
  • Simplified workflow: No custom parsing or encoding logic required for certificate forwarding

Full Translation

Translations

A translation section that keeps the flow of the original article.

claudejamodel: claude-sonnet-4-20250514

Workers - WorkersでのRFC 9440 mTLS証明書フィールドの新機能

WorkersでのRFC 9440 mTLS証明書フィールドの新機能

2026年3月27日

mutual TLS (mTLS) クライアント証明書を含むリクエストに対して、Workersのrequest.cf.tlsClientAuthで4つの新しいフィールドが利用可能になりました。これらのフィールドは、クライアント証明書とその中間チェーンをRFC 9440形式でエンコードします。これはClient-CertおよびClient-Cert-Chain HTTPヘッダーで使用されるのと同じ標準形式であるため、カスタムの解析やエンコードロジックなしに、Workerからオリジンサーバーへそのまま転送できます。

新しいフィールド

フィールドタイプ説明
certRFC9440StringRFC 9440形式(:base64-DER:)のクライアントリーフ証明書。クライアント証明書が提示されなかった場合は空。
certRFC9440TooLargeBooleanリーフ証明書が10 KBを超えてcertRFC9440から除外された場合はtrue
certChainRFC9440StringRFC 9440形式の中間証明書チェーンをカンマ区切りリストとして表現。中間証明書が送信されなかった場合、またはチェーンが16 KBを超えた場合は空。
certChainRFC9440TooLargeBoolean中間チェーンが16 KBを超えてcertChainRFC9440から除外された場合はtrue

例:クライアント証明書ヘッダーをオリジンに転送

JavaScript

export default {
  async fetch(request) {
    const tls = request.cf.tlsClientAuth;
    
    // 証明書が検証され、チェーンが完全な場合のみ転送
    if (!tls || !tls.certVerified || tls.certRevoked || tls.certChainRFC9440TooLarge) {
      return new Response("Unauthorized", { status: 401 });
    }
    
    const headers = new Headers(request.headers);
    headers.set("Client-Cert", tls.certRFC9440);
    headers.set("Client-Cert-Chain", tls.certChainRFC9440);
    
    return fetch(new Request(request, { headers }));
  },
};

詳細については、Client certificate variablesおよびMutual TLS authenticationを参照してください。