[研究]Thunderbird 146.0 收加簽信件中兩種「數位簽章無效」的差異?
2025-12-19
********************************************************************************
第一種
郵件安全 - S/MIME 數位簽章無效 此郵件包含不正確的數位簽章。 用來簽署此郵件的憑證的發行者是您所不信任的。 簽署者: 電子郵件地址: 憑證發行者: TWCA InfoSec User CA 郵件未加密 此討郵件沒被加密過。它在傅送中有可能被偷看。 |
********************************************************************************
第二種
郵件安全 - S/MIME 數位簽章無效 此郵件包含不正確的數位簽章。 此數位簽章有不明的錯誤。請與寄件者確認郵件的内文·(1) 郵件未加密 此封郵件沒被加密過。它在傅送中有可能被偷看。 |
********************************************************************************
ChatGPT
第一種,用來簽署此郵件的憑證的發行者是您所不信任的。
原因:
- Thunderbird 無法認證簽章的憑證鏈。
- 你的 Thunderbird 或作業系統中 沒有信任 TWCA InfoSec User CA 的根憑證或中繼憑證。
- 雖然簽章本身正確,但由於「憑證來源不在信任列表」,所以會顯示無效。
解決方式:
- 匯入 TWCA InfoSec User CA 的根憑證到 Thunderbird 的「證書管理」 → 「權威憑證」。
- 設定信任此 CA 用於「電子郵件簽章」。
- 重新開 Thunderbird 讀取該郵件,就應該會顯示簽章有效。
第二種,此數位簽章有不明的錯誤。請與寄件者確認郵件的内容。
原因:
- 這裡不是「憑證不信任」的問題,而是簽章本身有錯誤或被破壞。
- 常見原因:
- 郵件在傳輸過程中被修改(例如某些郵件伺服器自動加上文字、修改編碼)。
- 郵件簽章對應的原始內容和收到的內容不一致(例如 HTML → plain text 轉換破壞簽章)。
- Thunderbird 匯入的簽章或憑證有損壞。
解決方式:
- 確認寄件者是否用相容的郵件軟體簽章。
- 嘗試用 Gmail Web 或 Outlook 收看原始郵件,確認簽章是否有效。
- 如果寄件者使用 S/MIME,請寄件者重新簽署郵件並寄送。
簡單區分
| 畫面類型 | 根本原因 | Thunderbird 顯示原因 |
|---|---|---|
| 第一種 | 憑證未被信任 | 「憑證發行者不信任」 |
| 第二種 | 簽章內容錯誤或被修改 | 「數位簽章有不明錯誤」 |
********************************************************************************
第二種,開發機、測試機正常,但正式機寄出來的信件,收到後檢視憑證有此訊息
ChatGPT
可能原因包括:
1️⃣ 郵件內容被修改或編碼不同
- 正式機可能在寄信過程中,對郵件做了 自動換行、編碼轉換或附加標頭。
- S/MIME 簽章是對 郵件原始內容計算的,如果中途被改動,即使憑證正確也會顯示「不明錯誤」。
檢查方式:
- 對比開發/測試/正式機寄出的郵件 原始原始檔 (View Source / Show Original)
- 注意 Content-Type、Content-Transfer-Encoding、換行符號(CRLF vs LF)
- 特別是 HTML → Plain Text 或附加簽名的自動處理
2️⃣ 郵件簽章方式或函式庫差異
- 正式機可能使用不同的 S/MIME 簽章函式庫版本 或 郵件寄送組件(例如 System.Net.Mail vs MailKit)
- 某些函式庫對 MIME 邊界或編碼處理不一致,會導致 Thunderbird 認為簽章無效。
3️⃣ 憑證使用方式差異
- 正式機是否有使用 同一個 .pfx 憑證?
- 是否存在 憑證序號不同、或中繼憑證未正確匯入 的情況?
- 如果正式機用的是加密過的 Web.config 讀取序號,但序號或憑證格式錯誤,也會產生簽章錯誤。
4️⃣ 正式機郵件伺服器影響
- 如果正式機走的是企業郵件伺服器或 GWS relay,伺服器可能在郵件傳送過程中 修改標頭、加上 DKIM、簽名或防病毒標記
- 這種修改也會破壞 S/MIME 原始簽章,導致 Thunderbird 顯示「不明錯誤」。
🔹 建議排查流程
- 匯出正式機寄出的原始 EML 檔
- 對比開發/測試機寄出的 EML
- 檢查 MIME 部分、換行、Content-Type、附件順序
- 確認正式機使用的憑證及中繼憑證是否完整
- 嘗試在開發/測試機使用正式機相同程式碼 & 憑證寄信
- 如果出錯,就確認是程式碼/環境差異
- 檢查郵件伺服器是否修改郵件
- 可嘗試直接用 SMTP 寄信,不經過公司 Relay,看看簽章是否正常
(完)
相關

沒有留言:
張貼留言