对于我们的企业网络,我们使用内部 CA,它直接签署一些内联网服务器证书。现在根证书即将过期。我尝试使用以下 OpenSSL 命令来更新它:
openssl req -new -x509 -days 123 -key root.key -out root.crt
我从 PC 中删除了旧证书并安装了新证书。Windows/IE、Chrome 和 Opera 似乎可以接受它,但 Firefox 不接受它。尝试访问内部网服务器时出现错误sec_error_unknown_issuer
,提示未提供链。我拼命在 Google 上搜索,但我能找到的唯一答案是服务器配置中缺少中间证书。但在我的例子中没有中间 CA!!为什么 Firefox 无法将服务器证书链接到新的根证书?所有其他浏览器似乎都可以,甚至openssl verify
说一切正常。有什么想法吗?
答案1
我找到了!问题出在我的openssl.cnf
。旧证书是用 创建的string_mask = utf8only
。我当前的文件中缺少此行,导致默认值为PrintableString, T61String, BMPString
。我没有使用任何非 ASCII 字符,但似乎这仍然足以激怒 Firefox。
答案2
我从我的电脑中删除了旧证书并安装了新的证书。
Firefox 使用自己的单独的证书存储。冒着显而易见的风险(对于我们这些经常使用 Firefox 的人来说),您是否将新的 CA 证书添加到 Firefox 本身?