需要幫助使用我們自己的根證書自動部署雷鳥
我們正在實驗室中設置自託管郵件解決方案,我們需要成為自己的 CA。我們遇到的問題是 Thunderbird 抱怨我們的根證書不受信任,即使我們知道它是有效的。
問題是 Thunderbird 帶有它自己信任的證書,並且它不會查看電腦受信任的證書,因此僅將 GPO 推送到具有根證書的所有客戶端是行不通的。
我們需要自動部署將根證書導入到 Thunderbird 中,並且在弄清楚如何操作方面遇到了嚴重的問題。
Autoconfig 正在執行,並且 Thunderbird 正在獲得正確的伺服器配置,但證書錯誤仍然存在。唯一已知的方法是將證書手動導入到 Thunderbirds 受信任的證書中。
這裡有人對如何進行有建議嗎?
因為 Thunderbird 與 Firefox 基於相同的平台,所以您應該能夠使用與 Firefox 相同的工具。
您可以使用多種工具,按從簡單到最複雜的順序排列:
1.它可能是內置的!
Thunderbird 實驗性地支持從作業系統證書儲存中自動導入證書。
以下是手動啟用它的方法:
- 打開菜單並點擊“選項”
- 轉到“高級”選項卡
- 點擊“配置編輯器”
- 點擊“我接受風險!” 如果提示這樣做。
- 搜尋
security.enterprise_roots.enabled
- 點兩下
security.enterprise_roots.enabled
將其設置為 true。您可以通過將配置文件部署到電腦來自動執行此操作。
- 部署預設配置文件
您可以將證書添加到您自己的配置文件中,然後將您的配置文件的
cert8.db
文件複製到主程序文件夾。然後在電腦上創建的任何新配置文件都將使用該版本的cert8.db
.不幸的是,這對任何已經打開 Thunderbird 的使用者沒有幫助,因為他們的配置文件已經創建。
3.部署配置文件
正如上面選項 #1 中提到和連結的那樣,Mozilla 產品支持在
C:\Program Files (possibly x86)\Mozilla Thunderbird\defaults\pref\autoconfig.js
.您可以在該文件中放置一個腳本,將您的證書添加到證書儲存中。這是一個例子:
var cert = "MIIHPT...zTMVD"; // This should be the certificate content with no line breaks at all. var observer = { observe: function observe(aSubject, aTopic, aData) { var certdb = Components.classes["@mozilla.org/security/x509certdb;1"].getService(Components.interfaces.nsIX509CertDB); var certdb2 = certdb; try { certdb2 = Components.classes["@mozilla.org/security/x509certdb;1"].getService(Components.interfaces.nsIX509CertDB2); } catch (e) {} certdb2.addCertFromBase64(cert, "C,C,C", ""); } } Components.utils.import("resource://gre/modules/Services.jsm"); Services.obs.addObserver(observer, "profile-after-change", false);
4.Mozilla的
certutil
執行檔您可以創建一個執行
certutil
以將證書添加到使用者配置文件的登錄腳本。此論壇文章有一個範例腳本(用於 Firefox),其中重要部分複制如下(對 Thunderbird 進行了修改):strAppDataDir = WshShell.ExpandEnvironmentStrings("%APPDATA%") strThunderbirdProfilesDir = strAppDataDir & "\Thunderbird\Profiles\" Set arrThunderbirdProfileList = objFSO.GetFolder(strThunderbirdProfilesDir).SubFolders For Each ThunderbirdProfile In arrThunderbirdProfileList 'Create a backup of the old cert8.db file. This line is optional. objFSO.CopyFile ThunderbirdProfile & "\cert8.db" , ThunderbirdProfile & "\cert8.db.old", OverWriteFiles 'Add the local CA certificate to cert8.db and assign appropriate trust levels. Call WshShell.Run(strCertutilPath & " -A -n " & Chr(34) & strLocalCertificateAuthorityName & Chr(34) & " -i " & strCertificateFilePath & " -t " & Chr(34) & strTrustAttributes & Chr(34) & " -d " & Chr(34) & ThunderbirdProfile & Chr(34), 0, true) Next
(注意:不要與微軟的同名程序混淆)
5.您可以使用管理工具
CCK2是 Mozilla 產品的第三方管理工具。有關更多詳細資訊,請參閱其文件。