我在 Linux Xubuntu 系统上使用 Firefox 44.0.2。我试图访问需要证书的公司网站。
我可以在“首选项”->“高级”->“证书”->“查看证书”->“您的证书”中确认我有正确的证书
它就在那里,并且与我在 Windows 机器上的 Chrome 浏览器上成功使用的证书相同。当我尝试从 Windows Chrome 访问网站时,会弹出一个窗口,要求我选择其中一个证书,我选择了正确的证书,一切正常。
我的问题是,当我尝试访问网站时,Linux 上的 Firefox 从不提示我选择证书。我只收到“400 未发送所需 SSL 证书”。
我怎样才能让 Firefox 提示我输入证书?或者我怎样才能告诉他要使用哪个证书?
答案1
我刚刚自己试验过这个。似乎只有当您已经导入了由签署站点 SSL 证书的同一颁发者签署的证书时,Firefox 才会提示。
因此,让您的 CA 签署服务器和客户端证书,然后将客户端证书导入 Firefox(通过“首选项”窗口)。下次您访问该站点时,Firefox 会注意到它具有由与服务器的 SSL 证书相同的 CA 签署的客户端证书,因此它会提示您是否使用它。
答案2
答案3
我刚刚遇到了同样的问题。我在 .NET 5 项目中使用 Lets Encrypt 服务器证书和自签名客户端证书。
Firefox 并未提示我输入证书,但 Chrome 却提示了。
我的解决方案是将以下标志添加到我自己创建的客户端证书中:
TlsWebClientAuthentication
DataEncipherment
KeyEncipherment
DigitalSignature
EMailProtection
一开始我只用了第一个。我还没试过看看哪一个(如果只有一个)能奏效。
答案4
在我的例子中,Web 服务器 (nginx) 已启用 SPDY。我禁用了它,现在 Firefox 可以正常工作并提示输入证书。