共用方式為


設定 DKIM 以從您的 Microsoft 365 網域簽署郵件

提示

您知道您可以免費試用 Office 365 方案 2 的 Microsoft Defender 全面偵測回應 功能嗎? 使用 Microsoft Defender 入口網站試用中樞的 90 天 適用於 Office 365 的 Defender 試用版。 瞭解誰可以在 Try 適用於 Office 365 的 Microsoft Defender 上註冊和試用條款。

DomainKeys 識別郵件 (DKIM) 是 一種電子郵件驗證 方法,可協助驗證從您Microsoft 365 組織傳送的郵件,以防止商務電子郵件入侵中使用的詐騙發件者, (BEC) 、勒索軟體和其他網路釣魚攻擊。

DKIM 的主要目的是要確認訊息在傳輸過程中並未遭到變更。 特別是:

  1. 系統會為網域產生一或多個私鑰,並由來源電子郵件系統用來數位簽署輸出訊息的重要部分。 這些訊息部分包括:
    • 視來源電子郵件系統) 而定,[寄件者]、[主旨]、[MIME-版本]、[內容類型]、[日期] 及其他郵件標頭字段 (。
    • 訊息本文。
  2. 數位簽名會儲存在訊息標頭的 [DKIM-Signature 標頭] 欄位中,只要中繼電子郵件系統未修改郵件的已簽署部分,數位簽名就會保持有效。 簽署網域是由 DKIM-Signature 標頭字段中的 d= 值所識別。
  3. 對應的公鑰會儲存在 365 Microsoft中簽署網域 (CNAME 記錄的 DNS 記錄中;其他電子郵件系統可能會使用 TXT 記錄) 。
  4. 目的地電子郵件系統會使用 [DKIM-Signature 標頭] 字段中的 d= 值來執行下列動作:
    • 識別簽署網域。
    • 在網域的 DKIM DNS 記錄中查閱公鑰。
    • 使用網域 DKIM DNS 記錄中的公鑰來驗證訊息簽章。

DKIM 的重要事實:

  • 用來簽署訊息的 DKIM 網域不需要符合郵件中 MAIL FROM 或 From 位址中的網域。 如需這些地址的詳細資訊,請參閱 因特網電子郵件為何需要驗證
  • 訊息可以有多個不同網域的 DKIM 簽章。 事實上,許多託管的電子郵件服務會使用服務網域簽署訊息,然後在客戶設定網域的 DKIM 簽署之後,再次使用客戶網域簽署訊息。

開始之前,以下是您需要根據電子郵件網域瞭解 Microsoft 365 中的 DKIM:

  • 例如,如果您只針對電子郵件 (使用 MICROSOFT Online Email 路由位址 (MOERA) 網域,contoso.onmicrosoft.com) :您不需要執行任何動作。 Microsoft會自動從初始 *.onmicrosoft.com 網域建立 2048 位的公用/私鑰組。 輸出訊息會使用私鑰自動簽署 DKIM。 公鑰會發佈在 DNS 記錄中,讓目的地電子郵件系統可以驗證訊息的 DKIM 簽章。

    但是,您也可以使用 *.onmicrosoft.com 網域手動設定 DKIM 簽署。 如需相關指示,請參閱本文稍後的 使用Defender入口網站自定義使用 *.onmicrosoft.com 網域的 DKIM 簽署輸出訊息 一節。

    若要確認輸出訊息會自動簽署 DKIM,請參閱本文稍後 的驗證來自 Microsoft 365 的輸出郵件 DKIM 簽署 一節。

    如需 *.onmicrosoft.com 網域的詳細資訊,請參閱 為什麼我有「onmicrosoft.com」網域?

  • 例如,如果您針對電子郵件 (使用一或多個自定義網域,contoso.com) :即使來自 Microsoft 365 的所有輸出郵件都由 MOERA 網域自動簽署,您仍有更多工作需要執行以達到電子郵件保護上限:

    • 使用自定義網域或子域設定 DKIM 簽署:訊息必須是由寄件者位址中的網域所簽署的 DKIM。 我們也建議您設定 DMARC,而且只有在 DKIM 簽署訊息的網域和發件者位址中的網域對齊時,DKIM 才會通過 DMARC 驗證。

    • 子域考慮

      • 針對不在您直接控制 (例如大量電子郵件服務) 的電子郵件服務,我們建議使用子域 (例如,marketing.contoso.com) 而不是您的主要电子邮件网域 (例如,contoso.com) 。 您不希望從這些電子郵件服務傳送的郵件問題影響您主要電子郵件網域中員工所傳送郵件的信譽。 如需新增子域的詳細資訊,請參閱我可以將自定義子域或多個網域新增至 Microsoft 365 嗎?。

      • 您用來從 Microsoft 365 傳送電子郵件的每個子域都需要自己的 DKIM 設定。

        提示

        Email DMARC 涵蓋未定義子域的驗證保護。 任何 (定義或未定義的子域) 繼承父域 (的 DMARC 設定,這些設定可在每個子域) 覆寫。 如需詳細資訊, 請參閱設定 DMARC 以驗證 Microsoft 365 中寄件者的寄件者發件者位址網域

    • 如果您擁有已註冊但未使用的網域:如果您擁有未用於電子郵件或任何 (也稱為已停駐網域) 的已註冊網域,請勿發佈這些網 的 DKIM 記錄。 因此,由於缺少 DKIM 記錄 (因此 DNS 中缺少公鑰來驗證訊息簽章) 會防止 DKIM 驗證偽造的網域。

  • 單獨使用 DKIM 並不夠。 如需自定義網域的最佳電子郵件保護層級,您也需要將SPF和 DMARC 設定為整體 電子郵件驗證 策略的一部分。 如需詳細資訊,請參閱本文結尾的後續 步驟 一節。

本文的其餘部分說明您需要為 Microsoft 365 中的自定義網域建立的 DKIM CNAME 記錄,以及使用自定義網域的 DKIM 設定程式。

提示

使用自定義網域設定 DKIM 簽署是Microsoft 365 中的程式和自定義網域之網域註冊機構的程式的混合。

我們提供在許多網域註冊機構為不同Microsoft 365服務建立 CNAME 記錄的指示。 您可以使用這些指示作為建立 DKIM CNAME 記錄的起點。 如需詳細資訊,請 參閱新增 DNS 記錄以連接您的網域

如果您不熟悉 DNS 設定,請連絡網域註冊機構並要求協助。

DKIM CNAME 記錄的語法

提示

您可以使用 Defender 入口網站或 Exchange Online PowerShell 來檢視使用自定義網域的 DKIM 簽署輸出訊息所需的 CNAME 值。 此處顯示的值僅供說明之用。 若要取得自定義網域或子域所需的值,請使用本文稍後的程式。

DKIM 在 RFC 6376 中詳盡說明。

從 Microsoft 365 傳送郵件之自訂網域的 DKIM CNAME 記錄基本語法為:

Hostname: selector1._domainkey
Points to address or value: selector1-<CustomDomain>._domainkey.<InitialDomain>

Hostname: selector2._domainkey
Points to address or value: selector2-<CustomDomain>._domainkey.<InitialDomain>
  • 在 Microsoft 365 中,啟用使用自定義網域或子域的 DKIM 簽署時,會產生兩個公用私鑰組。 無法存取用來簽署訊息的私鑰。 CNAME 記錄會指向用來驗證 DKIM 簽章的對應公鑰。 這些記錄稱為 選取器

    • 啟用使用自定義網域的 DKIM 簽署時,只會使用一個選取器。
    • 第二個選取器為非使用中。 它只會在任何未來的 DKIM 金鑰輪替之後啟用並使用,然後只在原始選取器停用之後使用。

    用來驗證 DKIM 簽章 (的選取器,會推斷用來簽署訊息的私鑰) 會儲存在 dKIM-Signature 標頭欄位 (的 s= 值中, s=selector1-contoso-com 例如,) 。

  • 主機名:所有Microsoft 365 組織的值都相同: selector1._domainkeyselector2._domainkey

  • <CustomDomain>:以破折號取代句點的自定義網域或子域。 例如, contoso.com 會變成 contoso-com,或 marketing.contoso.com 變成 marketing-contoso-com

  • <InitialDomain>:您在 Microsoft 365 註冊時使用的 *.onmicrosoft.com (例如,contoso.onmicrosoft.com) 。

例如,貴組織在 Microsoft 365 中有下列網域:

  • 初始網域:cohovineyardandwinery.onmicrosoft.com
  • 自定義網域:cohovineyard.com 和 cohowinery.com

您必須在每個自訂網域中建立兩筆 CNAME 記錄,總共四筆 CNAME 記錄:

  • cohovineyard.com 網域中的 CNAME 記錄

    主機名稱selector1._domainkey
    指向位址或值selector1-cohovineyard-com._domainkey.cohovineyardandwinery.onmicrosoft.com

    主機名稱selector2._domainkey
    指向位址或值selector2-cohovineyard-com._domainkey.cohovineyardandwinery.onmicrosoft.com

  • cohowinery.com 網域中的 CNAME 記錄

    主機名稱selector1._domainkey
    指向位址或值selector1-cohowinery-com._domainkey.cohovineyardandwinery.onmicrosoft.com

    主機名稱selector2._domainkey
    指向位址或值selector2-cohowinery-com._domainkey.cohovineyardandwinery.onmicrosoft.com

在 Microsoft 365 中設定輸出訊息的 DKIM 簽署

使用Defender入口網站,使用自訂網域啟用輸出訊息的 DKIM 簽署

提示

使用自定義網域啟用輸出訊息的 DKIM 簽署,可有效地將 DKIM 簽署從使用初始 *.onmicrosoft.com 網域切換為使用自定義網域。

只有在成功將網域新增至 Microsoft 365 之後,您才能使用自定義網域或子域來簽署輸出郵件。 如需指示,請 參閱新增網域

決定自定義網域何時啟動 DKIM 簽署輸出郵件的主要因素是 DNS 中的 CNAME 記錄偵測。

若要使用本節中的程式,自定義網域或子域必須出現在 的 [Email 驗證設定] 頁面的 [DKIM] 索引標籤上https://security.microsoft.com/authentication?viewid=DKIM。 詳細資料飛出視窗中的網域屬性必須包含下列值:

[網域詳細數據] 索引標籤會顯示已停用 DKIM 簽署,且未設定網域的 DKIM 簽章。

  • [ 使用 DKIM 簽章簽署此網域的訊息 ] 切換會設定為 [已 停用]
  • [狀態] 值為 [未簽署網域的 DKIM 簽章]
  • 建立 DKIM 金鑰 不存在。 旋轉 DKIM 金鑰 是可見的,但呈現灰色。

如果網域符合這些需求,請繼續進行。

  1. 在 Defender 入口網站https://security.microsoft.com中,移至 Email &> 共同作業原則 & 規則>威脅>原則 Email 驗證設定頁面。 或者,若要直接移至 [Email 驗證設定] 頁面,請使用 https://security.microsoft.com/authentication

  2. 在 [Email 驗證設定] 頁面上,選取 [DKIM] 索引標籤

  3. [DKIM] 索 引標籤上,按下名稱旁邊複選框以外的數據列中的任何位置,選取要設定的自定義網域。

    Defender 入口網站中 [Email 驗證] 頁面的 [DKIM] 索引卷標。

  4. 在開啟的網域詳細數據飛出視窗中,選取 [使用 DKIM 簽章簽署此網域的訊息 ] 切換開關,此切換目前設定為 [已 停用]

    請注意 [上次核取日期] 值。

  5. [ 用戶端錯誤 ] 對話框隨即開啟。 此錯誤包含要在網域註冊機構建立的兩筆 CNAME 記錄中使用的值。

    在此範例中,會 contoso.com 自定義網域,並 contoso.onmicrosoft.com Microsoft 365 組織的初始網域。 錯誤訊息看起來像這樣:

    |Microsoft.Exchange.ManagementTasks.ValidationException|CNAME record does not
    exist for this config. Please publish the following two CNAME records first. Domain Name
    : contoso.com Host Name : selector1._domainkey Points to address or value: selector1-
    contoso-com._domainkey.contoso.onmicrosoft.com Host Name : selector2._domainkey
    Points to address or value: selector2-contoso-com._domainkey.contoso.onmicrosoft.com .
    If you have already published the CNAME records, sync will take a few minutes to as
    many as 4 days based on your specific DNS. Return and retry this step later.
    

    因此,您需要在 DNS 中為 contoso.com 網域建立的 CNAME 記錄如下:

    主機名稱selector1._domainkey
    指向位址或值selector1-contoso-com._domainkey.contoso.onmicrosoft.com

    主機名稱selector2._domainkey
    指向位址或值selector2-contoso-com._domainkey.contoso.onmicrosoft.com

    從錯誤對話框複製資訊 (選取文字,然後按 CTRL+C) ,然後選取 [ 確定]

    讓網域詳細數據保持開啟。

  6. 在另一個瀏覽器索引標籤或視窗中,移至網域的網域註冊機構,然後使用上一個步驟中的資訊建立兩筆 CNAME 記錄。

    我們提供在許多網域註冊機構為不同Microsoft 365服務建立 CNAME 記錄的指示。 您可以使用這些指示作為建立 DKIM CNAME 記錄的起點。 如需詳細資訊,請 參閱新增 DNS 記錄以連接您的網域

    Microsoft 365 需要幾分鐘的時間 (或較長的) ,才能偵測您建立的新 CNAME 記錄。

  7. 一段時間之後,返回您在步驟 5 中保持開啟的網域屬性旗標,然後選取 [使用 DKIM 簽章簽署此網域的訊息] 切換。

    幾秒鐘之後,下列對話框隨即開啟:

    當您嘗試啟用網域的 DKIM 簽署時所開啟的對話框。

    選取 [ 確定 ] 關閉對話框之後,請在詳細資料飛出視窗上確認下列設定:

    • [使用 DKIM 簽章簽署此網域的訊息] 切換會設定為 [已啟用]。
    • [狀態] 值是 [簽署此網域的 DKIM 簽章]
    • 替 DKIM 金鑰可供使用。
    • 上次檢查日期:日期和時間應該比步驟 4 中的原始值還要新。

    啟用網域的 DKIM 之後的網域詳細數據飛出視窗。

使用Defender入口網站,使用 *.onmicrosoft.com 網域自定義輸出訊息的 DKIM 簽署

如本文稍早所述,初始 *.onmicrosoft.com 網域會自動設定為簽署來自您Microsoft 365 組織的所有輸出郵件,而且您應該 將自定義網域設定為 DKIM 簽署輸出郵件

但是,您也可以使用本節中的程序來影響使用 *.onmicrosoft.com 網域的 DKIM 簽署:

  • 產生新的金鑰。 新的金鑰會自動加入並用於Microsoft 365 數據中心。
  • 讓 *.onmicrosoft.com 網域的屬性正確地出現在網域的詳細數據飛出視窗中,位於 或 PowerShell 中[Email 驗證設定] 頁面https://security.microsoft.com/authentication?viewid=DKIM[DKIM] 索引卷標上。 此結果允許未來針對網域的 DKIM 設定進行作業 (例如 手動密鑰輪替) 。

若要使用本節中的程式,*.onmicrosoft.com 網域必須出現在 的 [Email 驗證設定] 頁面的 [DKIM] 索引卷標上https://security.microsoft.com/authentication?viewid=DKIM。 詳細資料飛出視窗中 *.onmicrosoft.com 網域的屬性必須包含下列值:

具有 [建立 DKIM 金鑰] 按鈕的網域詳細資料飛出視窗。

  • 無法使用 [ 使用 DKIM 簽章簽署此網域的訊息 ] 切換開關。
  • [狀態] 值為 [未儲存此網域的 DKIM 金鑰]
  • 建立 DKIM 金鑰 存在。

如果網域符合這些需求,請繼續進行。

  1. 在 Defender 入口網站https://security.microsoft.com中,移至 Email &> 共同作業原則 & 規則>威脅>原則 Email 驗證設定頁面。 或者,若要直接移至 [Email 驗證設定] 頁面,請使用 https://security.microsoft.com/authentication

  2. 在 [Email 驗證設定] 頁面上,選取 [DKIM] 索引標籤

  3. [DKIM ] 索引標籤上,按兩下名稱旁邊複選框以外的數據列中的任何位置,選取要設定的 *.onmicrosoft.com 網域。

    Defender 入口網站中 [Email 驗證] 頁面的 [DKIM] 索引卷標。

  4. 在開啟的網域詳細數據飛出視窗中,選取 [ 建立 DKIM 密鑰]

    具有 [建立 DKIM 金鑰] 按鈕的網域詳細資料飛出視窗。

  5. DKIM 金鑰建立完成時,[ 發佈 CNAME] 對話框隨即 開啟。 選取 [關閉]

    您無法建立 *.onmicrosoft.com 網域的 CNAME 記錄,因此您不需要複製這些值。 Microsoft為您處理必要的 DNS 設定。

  6. 選取 [關閉] 之後,您會回到網域詳細數據飛出視窗,其中 [ 使用 DKIM 簽章簽署此網域的訊息 ] 切換為 [已 停用]

    已停用 DKIM 簽署的 [網域詳細數據] 索引標籤。

    [使用 DKIM 簽章簽署此網域的訊息 ] 切換為 [ 已啟用 ],然後在開啟的確認對話框中選取 [ 確定 ]。

    已啟用 DKIM 簽署和為網域設定 DKIM 簽章的 [網域詳細資料] 索引標籤。

    當您完成網域詳細數據飛出視窗時,請選取 [ 關閉]

使用 Exchange Online PowerShell 設定輸出訊息的 DKIM 簽署

如果您想要使用 PowerShell 來啟用使用自訂網域的輸出訊息 DKIM 簽署,或自定義 *.onmicrosoft.com 網域的 DKIM 簽署,請連線到 Exchange Online PowerShell 以執行下列命令。

提示

您必須先將網域新增至 Microsoft 365,才能使用自定義網域設定 DKIM 簽署。 如需指示,請 參閱新增網域。 若要確認自定義網域可供 DKIM 設定使用,請執行下列命令: Get-AcceptedDomain

如本文稍早所述,您的 *.onmicrosoft.com 網域預設已簽署輸出電子郵件。 一般而言,除非您已在Defender入口網站或PowerShell中手動設定 *.onmicrosoft.com 網域的 DKIM 簽署,否則 *.onmicrosoft.com 不會出現在 Get-DkimSigningConfig 的輸出中。

  1. 執行下列命令,以確認組織中所有網域的可用性和 DKIM 狀態:

    Get-DkimSigningConfig | Format-List Name,Enabled,Status,Selector1CNAME,Selector2CNAME
    
  2. 針對您想要設定 DKIM 簽署的網域,步驟 1 中命令的輸出會決定您接下來需要執行的動作:

    • 網域會列出下列值:

      • 已啟用:False
      • 狀態CnameMissing

      移至步驟 3 以複製選取器值。

    • 未列出網域:

      1. 以網域值取代 <Domain> ,然後執行下列命令:

        New-DkimSigningConfig -DomainName <Domain> -Enabled $false [-BodyCanonicalization <Relaxed | Simple>] [-HeaderCanonicalization <Relaxed | Simple>] [-KeySize <1024 | 2048>]
        
        • BodyCanonicalization 參數會指定訊息本文中變更的敏感度層級:
          • 寬鬆:允許空格符的變更,以及訊息本文結尾空白行的變更。 這是預設值。
          • 簡單:只容許在訊息本文結尾的空白行變更。
        • HeaderCanonicalization 參數會指定訊息標頭變更的敏感度層級:
          • 寬鬆:可容許對訊息標頭的一般修改。 例如,標頭欄位線重新繪製、不必要空格符或空白行中的變更,以及標頭欄位的變更。 這是預設值。
          • 簡單:不容許對標頭欄位進行任何變更。
        • KeySize 參數會指定 DKIM 記錄中公鑰的位大小:
            1. 這是預設值。

        例如:

        New-DkimSigningConfig -DomainName contoso.com -Enabled $false
        
      2. 再次執行步驟 1 中的 命令,以確認網域已列出下列屬性值:

        • 已啟用:False
        • 狀態CnameMissing
      3. 移至步驟 3 以複製選取器值。

  3. 從步驟 1 的命令輸出複製網域的 Selector1CNAMESelector2CNAME 值。

    您需要在網域註冊機構為網域建立的 CNAME 記錄如下所示:

    主機名稱selector1._domainkey
    指向位址或值<Selector1CNAME value>

    主機名稱selector2._domainkey
    指向位址或值<Selector2CNAME value>

    例如:

    主機名稱selector1._domainkey
    指向位址或值selector1-contoso-com._domainkey.contoso.onmicrosoft.com

    主機名稱selector2._domainkey
    指向位址或值selector2-contoso-com._domainkey.contoso.onmicrosoft.com

  4. 執行下列其中一個步驟:

    • 自定義網域:在網域的網域註冊機構中,使用上一個步驟中的資訊建立兩個 CNAME 記錄。

      我們提供在許多網域註冊機構為不同Microsoft 365服務建立 CNAME 記錄的指示。 您可以使用這些指示作為建立 DKIM CNAME 記錄的起點。 如需詳細資訊,請 參閱新增 DNS 記錄以連接您的網域

      Microsoft 365 需要幾分鐘的時間 (或較長的) ,才能偵測您建立的新 CNAME 記錄。

    • *.onmicrosoft.com 網域:移至步驟 5。

  5. 一段時間之後,返回 Exchange Online PowerShell,以您設定的網域取代 <Domain>,然後執行下列命令:

    Set-DkimSigningConfig -Identity \<Domain\> -Enabled $true [-BodyCanonicalization <Relaxed | Simple>] [-HeaderCanonicalization <Relaxed | Simple>]
    
    • BodyCanonicalization 參數會指定訊息本文中變更的敏感度層級:
      • 寬鬆:允許空格符的變更,以及訊息本文結尾空白行的變更。 這是預設值。
      • 簡單:只容許在訊息本文結尾的空白行變更。
    • HeaderCanonicalization 參數會指定訊息標頭變更的敏感度層級:
      • 寬鬆:可容許對訊息標頭的一般修改。 例如,標頭欄位線重新繪製、不必要空格符或空白行中的變更,以及標頭欄位的變更。 這是預設值。
      • 簡單:不容許對標頭欄位進行任何變更。

    例如:

    Set-DkimSigningConfig -Identity contoso.com -Enabled $true
    

    Set-DkimSigningConfig -Identity contoso.onmicrosoft.com -Enabled $true
    
    • 針對自定義網域,如果Microsoft 365 能夠在網域註冊機構偵測 CNAME 記錄,則命令會在不發生錯誤的情況下執行,而網域現在會用來簽署來自網域的輸出訊息 DKIM。

      如果未偵測到 CNAME 記錄,您會收到錯誤,其中包含要在 CNAME 記錄中使用的值。 檢查網域註冊機構的值中是否有錯字, (輕鬆地使用虛線、句號和底線!) ,等候一段時間,然後再次執行命令。

    • 針對先前未列出的 *.onmicrosoft.com 網域,此命令會在沒有錯誤的情況下執行。

  6. 若要確認網域現在已設定為 DKIM 簽署訊息,請從步驟 1 執行 命令。

    網域應具有下列屬性值:

    • 已啟用:True
    • 狀態Valid

如需詳細的語法和參數資訊,請參閱下列文章:

輪替 DKIM 金鑰

基於您應該定期變更密碼的相同原因,您應該定期變更 DKIM 簽署所使用的 DKIM 金鑰。 取代網域的 DKIM 金鑰稱為 DKIM 金鑰輪替

下列命令的輸出會顯示網域 Microsoft 365 的 DKIM 金鑰輪替相關信息,Exchange Online PowerShell

Get-DkimSigningConfig -Identity <CustomDomain> | Format-List
  • KeyCreationTime:D KIM 公開/私鑰組建立的 UTC 日期/時間。
  • RotateOnDate:先前或下一個 DKIM 金鑰輪替的日期/時間。
  • SelectorBeforeRotateOnDate:請記住,在 Microsoft 365 中使用自定義網域進行 DKIM 簽署需要網域中有兩筆 CNAME 記錄。 此屬性會顯示 DKIM 在 RotateOnDate 日期時間 (也稱為 選取器) 之前使用的 CNAME 記錄。 值為 selector1selector2 ,且與 SelectorAfterRotateOnDate 值不同。
  • SelectorAfterRotateOnDate:顯示 DKIM 在 RotateOnDate 日期時間之後使用的 CNAME 記錄。 值為 selector1selector2 ,且與 SelectorBeforeRotateOnDate 值不同。

如本節所述,當您在網域上執行 DKIM 金鑰輪替時,不會立即進行變更。 新私鑰需要四天 (96 小時) ,才能開始簽署訊息 (RotateOnDate 日期/時間,以及對應的 SelectorAfterRotateOnDate 值) 。 在那之前,現有的私鑰會 (對應的 SelectorBeforeRotateOnDate 值) 使用。

提示

決定自定義網域何時啟動 DKIM 簽署輸出郵件的主要因素是 DNS 中的 CNAME 記錄偵測。

若要確認用來驗證 DKIM 簽章的對應公鑰, (推斷用來簽署訊息) 的私鑰,請檢查選取器 ([DKIM-Signature 標頭] 欄位中的 s= 值;例如, s=selector1-contoso-com) 。

提示

針對自定義網域,您只能在啟用 DKIM 簽署的網域上輪替 DKIM 金鑰, ([狀態 ] 值為 [已啟用]) 。

目前,*.onmicrosoft.com 網域沒有自動 DKIM 金鑰輪替。 您可以手動輪替 DKIM 密鑰,如本節所述。 如果 *.onmicrosoft.com 網域的屬性中無法使用 輪替 DKIM 金鑰 ,請使用本文稍早 使用 *.onmicrosoft.com 網域自定義輸出訊息的 DKIM 簽署 一節中的程式。

使用Defender入口網站輪替自訂網域的 DKIM 金鑰

  1. 在 Defender 入口網站https://security.microsoft.com的 中,移至 Email & 共同>作業原則 & 規則>威脅>原則 Email 驗證設定頁面。 或者,若要直接移至 [Email 驗證設定] 頁面,請使用 https://security.microsoft.com/authentication

  2. 在 [Email 驗證設定] 頁面上,選取 [DKIM] 索引標籤。

  3. [DKIM] 索 引標籤上,按兩下名稱旁邊複選框以外的數據列中的任何位置,選取要設定的網域。

    Defender 入口網站中 [Email 驗證] 頁面的 [DKIM] 索引卷標。

  4. 在開啟的網域詳細數據飛出視窗中,選取 [輪替 DKIM 密鑰]

    網域詳細數據飛出視窗,其中包含 [旋轉 DKIM 金鑰] 按鈕。

  5. 詳細資料飛出視窗中的設定會變更為下列值:

    • 狀態:輪替此網域的密鑰並簽署 DKIM 簽章。
    • 旋轉 DKIM 金鑰 會呈現灰色。
  6. ) (4 天后,新的 DKIM 金鑰會開始簽署自定義網域的輸出訊息。 在那之前,會使用目前的 DKIM 金鑰。

    [狀態 ] 值從 [輪 替此網域的密鑰] 和 [簽署 DKIM 簽 章] 變更為 [簽署此網域的 DKIM 簽章] 時,您可以分辨正在使用新的 DKIM 密鑰。

若要確認用來驗證 DKIM 簽章的對應公鑰, (推斷用來簽署訊息) 的私鑰,請檢查選取器 ([DKIM-Signature 標頭] 欄位中的 s= 值;例如, s=selector1-contoso-com) 。

使用 Exchange Online PowerShell 輪替網域的 DKIM 金鑰並變更位深度

如果您想要使用 PowerShell 來輪替網域的 DKIM 密鑰,請連線到 Exchange Online PowerShell 以執行下列命令。

  1. 執行下列命令,以確認組織中所有網域的可用性和 DKIM 狀態:

    Get-DkimSigningConfig | Format-List Name,Enabled,Status,Selector1CNAME,Selector1KeySize,Selector2CNAME,Selector2KeySize,KeyCreationTime,RotateOnDate,SelectorBeforeRotateOnDate,SelectorAfterRotateOnDate
    
  2. 針對您想要輪替 DKIM 金鑰的網域,請使用下列語法:

    Rotate-DkimSigningConfig -Identity <CustomDomain> [-KeySize <1024 | 2048>]
    

    如果您不想變更新 DKIM 金鑰的位深度,請勿使用 KeySize 參數。

    本範例會輪替 contoso.com 網域的 DKIM 金鑰,並變更為 2048 位密鑰。

    Rotate-DkimSigningConfig -Identity contoso.com -KeySize 2048
    

    本範例會輪替 contoso.com 網域的 DKIM 金鑰,而不會變更密鑰位深度。

    Rotate-DkimSigningConfig -Identity contoso.com
    
  3. 再次執行步驟 1 中的命令,以確認下列屬性值:

    • KeyCreationTime
    • RotateOnDate
    • SelectorBeforeRotateOnDate
    • SelectorAfterRotateOnDate

    目的地電子郵件系統會使用 SelectorBeforeRotateOnDate 屬性所識別 CNAME 記錄中的公鑰,來驗證訊息中的 DKIM 簽章, (推斷用來簽署訊息的私鑰) 。

    RotateOnDate 日期/時間之後,DKIM 會使用新的私鑰來簽署訊息,而目的地電子郵件系統會在 SelectorAfterRotateOnDate 屬性所識別的 CNAME 記錄中使用對應的公鑰來驗證訊息中的 DKIM 簽章。

    若要確認用來驗證 DKIM 簽章的對應公鑰, (推斷用來簽署訊息) 的私鑰,請檢查選取器 ([DKIM-Signature 標頭] 欄位中的 s= 值;例如, s=selector1-contoso-com) 。

如需詳細的語法和參數資訊,請參閱下列文章:

使用自訂網域停用輸出訊息的 DKIM 簽署

如本文稍早所述,使用自定義網域啟用輸出訊息的 DKIM 簽署,可有效地將 DKIM 簽署從使用 *.onmicrosoft.com 網域切換為使用自定義網域。

當您使用自定義網域停用 DKIM 簽署時,不會完全停用輸出郵件的 DKIM 簽署。 DKIM 簽署最終會切換回使用 *.onmicrosoft 網域。

使用Defender入口網站來停用使用自訂網域的輸出訊息 DKIM 簽署

  1. 在 Defender 入口網站https://security.microsoft.com中,移至 Email & 共同>作業原則 & 規則>威脅>原則 Email 驗證設定頁面。 或者,若要直接移至 [Email 驗證設定] 頁面,請使用 https://security.microsoft.com/authentication

  2. 在 [Email 驗證設定] 頁面上,選取 [DKIM] 索引標籤。

  3. [DKIM] 索 引標籤上,按兩下名稱旁邊複選框以外的數據列中的任何位置,選取要設定的網域。

  4. 在開啟的網域詳細數據飛出視窗中,將 [使用 DKIM 簽章簽署此網域的訊息 ] 切換為 [ 已停用]

    網域詳細數據飛出視窗,其中包含 [旋轉 DKIM 金鑰] 按鈕。

使用 Exchange Online PowerShell 停用使用自訂網域的輸出訊息 DKIM 簽署

如果您想要使用 PowerShell 來停用使用自訂網域的輸出訊息 DKIM 簽署,請連線到 Exchange Online PowerShell 以執行下列命令。

  1. 執行下列命令,以確認組織中所有網域的可用性和 DKIM 狀態:

    Get-DkimSigningConfig | Format-List Name,Enabled,Status
    

    您可以停用 DKIM 簽署的任何自訂網域都有下列屬性值:

    • 已啟用:True
    • 狀態Valid
  2. 針對您想要停用 DKIM 簽署的網域,請使用下列語法:

    Set-DkimSigningConfig -Identity <CustomDomain> -Enabled $false
    

    此範例會使用自定義網域 contoso.com 停用 DKIM 簽署。

    Set-DkimSigningConfig -Identity contoso.com -Enabled $false
    

確認從 Microsoft 365 簽署輸出郵件的 DKIM

提示

在您使用本節中的方法來測試輸出郵件的 DKIM 簽署之前,請在任何 DKIM 組態變更之後等候幾分鐘,以允許傳播變更。

使用下列任何一種方法來驗證來自 Microsoft 365 的輸出電子郵件 DKIM 簽署:

  • 傳送測試訊息,並從目的地電子郵件系統中的訊息標頭檢視相關的標頭字段

    1. 從啟用 Microsoft 365 DKIM 的網域內的帳戶傳送郵件給另一個電子郵件系統中的收件者 (例如,outlook.com 或 gmail.com) 。

      提示

      請勿將郵件傳送至 AOL 以進行 DKIM 測試。 如果SPF檢查通過,AOL可能會略過 DKIM 檢查。

    2. 在目的地信箱中,檢視郵件標頭。 例如:

    3. 在訊息標頭中尋找 [DKIM-Signature 標頭] 字段。 標頭欄位看起來如下列範例所示:

      DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=contoso.com;
       s=selector1;
       h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
       bh=UErATeHehIIPIXPeUAfZWiKo0w2cSsOhb9XM9ulqTX0=;
      
      • d=:用來簽署訊息的網域。
      • s=:選取器 (用來解密和驗證訊息 DKIM 簽章的網域) 中 DNS 記錄中的公鑰。
    4. 在訊息標頭中尋找 Authentication-Results 標頭字段。 雖然目的地電子郵件系統可能會使用稍微不同的格式來標記輸入郵件,但標頭字段應該包含 DKIM=passDKIM=OK。 例如:

      Authentication-Results: mx.google.com;
        dkim=pass header.i=@contoso.com header.s=selector1 header.b=NaHRSJOb;
        arc=pass (i=1 spf=pass spfdomain=contoso.com dkim=pass dkdomain=contoso.com dmarc=pass fromdomain=contoso.com);
        spf=pass (google.com: domain of michelle@contoso.com designates 0000:000:0000:0000::000 as permitted sender) smtp.mailfrom=michelle@contoso.com
      

      提示

      在下列任一情況下,會省略 DKIM 簽章:

      • 寄件人和收件者電子郵件地址位於相同的網域中。
      • 寄件人和收件者電子郵件地址位於相同組織所控制的不同網域中。

      在這兩種情況下, DKIM-Signature 標頭字段不存在於訊息標頭中,而 Authentication-Results 標頭字段看起來如下列範例所示:

      authentication-results: dkim=none (message not signed)
       header.d=none;dmarc=none action=none header.from=contoso.com;
      
  • 使用 Microsoft 365 說明中的測試:此功能需要全域管理員*帳戶,Microsoft 365 Government Community Cloud (GCC) 、GCC High、DoD 或 21Vianet 營運 Office 365 無法使用。

    重要事項

    * Microsoft建議您使用許可權最少的角色。 使用較低許可權的帳戶有助於改善組織的安全性。 全域系統管理員是高度特殊權限角色,應僅在無法使用現有角色的緊急案例下使用。

    Microsoft 365 說明中的 DKIM 診斷測試。

DKIM 在其他電子郵件服務上從您的自定義網域簽署郵件

某些電子郵件服務提供者或軟體即服務提供者可讓您為源自服務的郵件啟用 DKIM 簽署。 但是,這些方法完全取決於電子郵件服務。

提示

如本文稍早所述,建議您針對未直接控制的電子郵件系統或服務使用子域。

例如,您在 Microsoft 365 中的電子郵件網域是 contoso.com,而您使用 Adatum 大量郵件服務來行銷電子郵件。 如果 Adatum 支援從您網域中的發件者在其服務中簽署訊息的 DKIM,則訊息可能包含下列元素:

Return-Path: <communication@adatum.com>
 From: <sender@marketing.contoso.com>
 DKIM-Signature: s=s1024; d=marketing.contoso.com
 Subject: This a message from the Adatum infrastructure, but with a DKIM signature authorized by marketing.contoso.com

在此範例中,需要下列步驟:

  1. Adatum 會提供 Contoso 公鑰,以用於從其服務簽署輸出 Contoso 郵件的 DKIM。

  2. Contoso 會在 DNS 的網域註冊機構發佈 DNS 中的公用 DKIM 金鑰,marketing.contoso.com 子域 (TXT 記錄或 CNAME 記錄) 。

  3. 當 Adatum 從 marketing.contoso.com 網域中的發件者傳送郵件時,郵件會使用其在第一個步驟中提供給 Contoso 之公鑰的私鑰來簽署 DKIM。

  4. 如果目的地電子郵件系統在輸入訊息上檢查 DKIM,則訊息會傳遞 DKIM,因為它們已簽署 DKIM。

  5. 如果目的地電子郵件系統在輸入訊息上檢查 DMARC,則 DKIM 簽章中的網域 (DKIM-Signature 標頭字段中的 d= 值) 符合電子郵件用戶端中所顯示 [寄件者] 位址中的網域,因此訊息也可以傳遞 DMARC:

    來源: sender@marketing.contoso.com
    d=: marketing.contoso.com

後續步驟

SPF、DKIM和 DMARC 如何一起運作以驗證電子郵件訊息發件者中所述,單獨使用 DKIM 並不足以防止Microsoft 365 網域詐騙。 您也需要設定 SPF 和 DMARC,以獲得最佳的保護。 如需詳細指示,請參閱:

針對 傳入 Microsoft 365 的郵件,如果您在傳遞至組織之前使用修改傳輸中訊息的服務,您可能也需要設定受信任的 ARC 密封器。 如需詳細資訊, 請參閱設定受信任的ARC密封器

提示

Exchange 2016 和 Exchange 2019 已知會修改流經它們的訊息,這可能會影響 DKIM。