Firefox上的ajax调用未加载SSL客户端证书

时间:2014-06-03 00:27:31

标签: jquery ajax firefox ssl

我正在从HTTP页面执行CORS请求,其中包含对另一个HTTPS服务器的JQuery ajax调用。此服务器向客户端请求SSL客户端证书,因此ajax查询需要提供它。

在Chrome 35中,一切都按预期工作,并修改了一些安全选项,它也适用于IE11(虽然不如Chrome)。但是,使用Firefox 29,我无法使其正常运行。使用Wireshark捕获网络流量我可以看到它在TLS握手期间提供并清空证书,因此SSL验证失败。如果我禁用SSL验证一切正常,那么CORS似乎在服务器中正确配置。

似乎firefox禁止JavaScript访问客户端证书,但我无法在文档中找到任何内容。关于我失踪的任何想法?

1 个答案:

答案 0 :(得分:3)

默认情况下,Firefox似乎发送带有跨源XHR请求的客户端证书。在XHR实例上设置withCredentials=true解决了我的问题。请注意,我也没有看到Chrome的这个问题 - 只有Firefox。

有关详细信息,请参阅this Mozilla Dev Network blog post。特别是,以下声明:

  

默认情况下,在跨站点XMLHttpRequest调用中,浏览器会   不发送凭据。调用XMLHttpRequest对象时,必须在其上设置一个特定的标志。