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

PSo*_*o3G 5 ajax ssl firefox jquery

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

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

似乎firefox禁止JavaScript访问客户端证书,但我在文档上找不到任何内容.关于我缺少的任何想法?

Cli*_*ris 6

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

有关更多信息,请参阅此 Mozilla 开发网络博客文章。特别是以下声明:

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