我正在尝试将我的客户端服务器(在Apache @ port 443上运行)发出的(非简单的)CORS GET请求(AJAX)发送到第三方端点服务器(在Tomcat @端口8443上运行),该请求失败通过HTTPS尝试时触发。
当未启用SSL时,它可以正常工作,表明CORS已正确设置。
问题是,由于GET(不简单),它会发送一个飞行前OPTIONS请求。
根据这个: Pre-flight OPTIONS request failing over HTTPS
预先广告的请求不包含客户端证书。他说这是在CORS规范中但是我无法找到规范中具体列出的内容: http://www.w3.org/TR/cors/
第三方无法启用
SSLVerifyClient optional
因为他们要求所有通信都使用SSL发送。
然而,他们的CORS设置确实正确,他们有
access-control-allow-credentials: "true"
在我们的AJAX调用中,我们包含在xhrFields
中 withCredentials: true
所以我们告诉它传递withCredentials(包括cert / cookie / etc)
在我们的APACHE上,我们有
SSLOptions +ExportCertData
不知怎的,当我们拨打电话时,他们仍然看到错误“key / cert not included”
我错过了什么吗?有没有办法在Apache中强制执行此操作? 目前,我正准备创建一个中间脚本,将证书附加到初始请求,但似乎必须有更好的方法。
有什么建议吗?