需要帮助使用我们自己的根证书自动部署雷鸟

需要帮助使用我们自己的根证书自动部署雷鸟

我们正在实验室中设置自托管邮件解决方案,并且需要我们自己的 CA。我们遇到的问题是,Thundebird 抱怨我们的根证书不受信任,尽管我们知道它是有效的。

问题在于,Thunderbird 自带了它所信任的证书,但并不查看计算机信任的证书,因此仅将 GPO 推送到所有具有根证书的客户端是行不通的。

我们需要自动部署将根证书导入Thundebird,但在如何操作方面遇到了严重的问题。

Autoconfig 正在运行,Thunderbird 正在获取正确的服务器配置,但证书错误仍然存​​在。唯一已知的方法是手动将证书导入 Thunderbirds 受信任的证书。

这里有人对如何进行有什么建议吗?

答案1

由于 Thunderbird 基于与 Firefox 相同的平台,因此您应该能够使用与 Firefox 相同的工具。

您可以使用多种工具,按照从最简单到最复杂的顺序排列:

1.它可能是内置的!

Thunderbird 已经实验性地支持从操作系统证书存储自动导入证书。

以下是手动启用它的方法:

  1. 打开菜单并点击“选项”
  2. 转到“高级”标签
  3. 点击“配置编辑器”
  4. 如果有提示,请点击“我接受风险!”。
  5. 搜索security.enterprise_roots.enabled
  6. 双击security.enterprise_roots.enabled将其设置为 true。

您可以通过以下方式自动执行此操作部署配置文件到计算机。

2. 部署默认配置文件

您可以将证书添加到您自己的配置文件中,然后将配置文件的cert8.db文件复制到主程序文件夹。然后,在计算机上创建的任何新配置文件都将使用该版本cert8.db

不幸的是,这对于已经打开 Thunderbird 的用户没有帮助,因为他们的配置文件已经创建。

https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Thunderbird_Enterprise_Tips#Using_a_private_CA_certificate了解更多信息。

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 产品的第三方管理工具。请参阅其文档以了解更多详细信息。

相关内容