メインコンテンツへスキップ
Cloudflare Workers を使用した複数ドメイン向けの動的 MTA-STS ポリシーのホスティング

Cloudflare Workers を使用した複数ドメイン向けの動的 MTA-STS ポリシーのホスティング

電子メール技術セキュリティに関する知見技術ガイダンス

最近、MTA-STSポリシーの設定方法についてお問い合わせをいただくことが増えてきたため、そのサポートとしてガイドを作成しました。    

このガイドでは、単一のCloudflare Workerを使用して、複数のドメインに対してMTA-STS(Mail Transfer Agent Strict Transport Security)ポリシーを配信する方法について解説します。この方法により、クエリの対象となるドメインに応じて適切なポリシーを提供できるため、ドメインごとに個別のファイルやWebサーバーを用意する必要がなくなります。

Cloudflare MTA-STS の前提条件

始める前に、以下の要件を満たしていることを確認してください:

  1. ドメインはCloudflareを通じて管理する必要があります。
  2. Cloudflareダッシュボードへのフルアクセス権が必要です。

MTA-STSの設定手順

1. Cloudflare Workers にアクセスする

Cloudflareアカウントのダッシュボードから、「Compute」セクションにある「Workers & Pages」に移動します。

2. 新しいワーカーを作成する

新しいワーカーを作成し 、「Hello World から始める」を選択します

3. デフォルトのコードを置き換える

デフォルトのコードを以下のコードに置き換えてください。このワーカーは、リクエストの発信元ドメインに基づいて、MTA-STSポリシーファイルを動的に返します。

export default {
 async fetch(request, env, ctx) {
   const hostname = new URL(request.url).hostname;

   // Define policies per domain
   const policies = {
     "mta-sts.domain.org": `version: STSv1
mode: testing
mx: mail.domain.org
max_age: 86400`,
    
     "mta-sts.example.org": `version: STSv1
mode: enforce
mx: mail.example.org
max_age: 86400`
   };

   const policy = policies[hostname];

   if (policy) {
     return new Response(policy, {
       headers: { "Content-Type": "text/plain" }
     });
   } else {
     return new Response("404 Not Found", {
       status: 404,
       headers: { "Content-Type": "text/plain" }
     });
   }
 }
}

注:各ドメインのポリシー内容を、MXレコードおよび希望する適用モード(テスト、適用、またはなし)に合わせて更新してください。

4.ワーカーをデプロイする

  • 「デプロイ」を選択して変更を保存し、ワーカーを公開してください。 

5. ドメインごとにルートを設定する

ワーカー」ダッシュボードで、以下の操作を行ってください:

  • 「設定」タブに移動する
  • 「ドメインとルート」の下にある「追加」をクリックし、ドメインごとにルートを作成します。例を以下に示します: 

ドメイン
example.com
example.org

パス
mta-sts.example.com/.well-known/mta-sts.txt
mta-sts.example.org/.well-known/mta-sts.txt

ルートは次のようなものになるはずです。

ルートを追加すると、「Worker」の設定ページは次のようになります。

6. DNSレコードの設定

6.1 各ドメインのDNS設定で、mta-stsサブドメインのAレコードを作成します:

  • タイプ:A
  • 名前:mta-sts
  • 値:192.0.2.1(仮のIPアドレス)
  • プロキシの状態:プロキシ経由(オレンジ色の雲)
  • 各ドメインについて、この手順を繰り返します

6.2 MTA-STSテキストレコードも必ず公開するようにしてください: 

  • 形式:TXT
  • 名前:_mta-sts
  • 値: “v=STSv1; id=20250630v01;”
    • 注:「id」の文字列は任意の内容に設定できます。レコードが作成された日付とバージョンを含む形式を使用することをお勧めします。 

7. 設定の確認

DNSの反映が完了したら、MTA-STSポリシーファイルをテストしてください:


2025年7月3日より、Cloudflareはメールの転送にSPFまたはDKIM認証を必須とし、すべての送信者に対してDMARCの導入を推奨しています。


dmarcianがお手伝いします

dmarcianは、メールセキュリティの専門家チームを擁し、ドメインセキュリティを通じてメールとインターネットの信頼性を高めることを使命として、今後のDMARCの更新を踏まえた組織のドメインカタログの評価を支援いたします。当社は、DMARCの導入から長期的な運用管理まで、全面的にサポートいたします。


この会話を続けたいですか?dmarcianフォーラムへどうぞ。