我需要设置一个可供少数有限数量的用户访问的 IIS Web 服务器。我考虑只使用自签名证书,并手动将其安装在用户的系统上。
因此,我使用 IIS 工具生成了证书,将其安装在 Web 服务器上,并将其导出到 .cer 文件中。在 Windows 设置中添加受信任的颁发机构可以很好地与 Internet Explorer 配合使用:它可以删除不安全警告。
在 Firefox 中,我无法使其工作。启用 security.enterprise_roots.enabled 选项没有帮助。在 Firefox 证书设置中,我无法将其导入到 Authorities 面板,我收到一条错误消息:
这不是证书颁发机构证书,因此无法将其导入到证书颁发机构列表中
我能做什么?我不想在 Firefox 中添加例外,因为它会永久禁用对 URL 的任何证书检查,这意味着任何中间人攻击都变得直截了当。如果服务器上的证书发生变化,我希望阻止用户访问网站。
答案1
为了添加到 Firefox 中的证书颁发机构列表中,证书必须具有 X509v3 扩展CA:TRUE
,例如
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
如果您有用于签署服务器证书的自己的私有 CA 证书,情况就会如此:您可以导入它并使用它来签署所有私有服务器证书,从而使它们立即在浏览器中受到信任。
对于自签名证书,最简单的解决方案是添加例外。快捷方式:chrome://pippki/content/exceptionDialog.xul
。这仅针对此证书设置例外。如果证书发生变化,您仍会收到不受信任证书的警告。
有可能允许 Firefox 信任来自 Windows 的 CA自 Firefox 49 起(错误 1265113)。配置参数为security.enterprise_roots.enabled
。默认情况下不会设置为true
(错误 1314010),但将其作为配置首选项使得可以通过组策略进行分发,这使其成为通过 GPO 安装的 CA 证书的完美扩展。
目前默认情况下general.config.filename
似乎已经设置为mozilla.cfg
。您只需将此行添加到文件(使用组策略替换它)%ProgramFiles%\Mozilla Firefox\Mozilla.cfg
:
pref("security.enterprise_roots.enabled", true);
要锁定设置以使用户无法使用 修改它about:config
,请改用lockPref()
。