因此,我决定在我的域中设置企业 CA,以便我们可以在内部 Web 应用程序上启用 SSL。对于我的测试基础,我在 Windows 上使用带有 .local FQDN 的 XAMPP。我为 CA 使用 Microsoft Active Directory 证书服务。
经过(多次)尝试和磨难,我终于得到了一个基本可以运行的示例。因此,该 Web 应用程序可以在 IE、Edge 和 Chrome 上运行,但在 Firefox 上无法运行。
Firefox 错误如下:
警告:前方有潜在安全风险 错误代码:
SEC_ERROR_UNKNOWN_ISSUER
无法验证此证书,因为颁发者未知
我在多个工作站上测试过,结果相同。Firefox 是最新版本。
当我在 openssl 中加载证书时没有出现任何错误:
openssl x509 -in "C:\xampp\apache\conf\ssl.crt\certname.crt"
我运行时出现以下两个错误:
openssl s_client -connect server.local:443
验证错误:num=20:无法获取本地颁发者证书
验证错误:num=21:无法验证第一个证书
我可以选择从我的 CA 下载“证书链”,但它采用 .p7b 格式。其内容是单个证书。
当我将文件转换为 .crt 或甚至在 httpd-xampp.conf 中使用 .p7b 时,Apache 随后不会启动。即使没有以下条目,它也可以正常启动。
SSLCertificateChainFile“conf/ssl.crt/chain-cert.crt”
有任何想法吗?
答案1
根据 Mozilla 的文档,从 FF64 开始,推荐通过企业策略安装证书。由于 (当前) 存在漏洞,您需要手动安装所有中间证书以及根证书。
您可以从这里下载 Firefox GPO 模板:https://github.com/mozilla/policy-templates/tree/master/windows
您可以通过在 about:config 中将“security.enterprise_roots.enabled”首选项设置为 true 进行单独测试。
更详细的信息可以从这里找到:https://wiki.mozilla.org/CA/AddRootToFirefox