0

我在可能的桌面上有一个本地 html 文件,它访问一个响应一些 JSON 数据的 web api (JAX-RS)。我启用了 CORS,一切正常,但只有没有 SSL。我该如何做才能使其与 SSL 一起使用?我使用自签名证书,并且可以从 WPF 应用程序调用此 Web api,但是从 JavaScript 应用程序(独立的 html 文件),当 Chrome 在 POST 之前发送 OPTIONS 预检时,请求似乎甚至没有到达服务器. 我也尝试在浏览器中导入自签名证书,但没有任何改变。

4

1 回答 1

0

预检请求不允许包含实体主体或凭据。如果您使用的是预检请求,则不能使用双向 SSL。

解决方案是更改服务器以使证书可选。我只使用 Apache HTTP 服务器或 Tomcat 完成了这项工作,但我认为其他服务器也能做到这一点。

在 apache 中,设置应更改为

SSLVerifyClient optional

在 Tomcat 中,SSL 设置应更改为

clientAuth="want"

如果没有此更改,则只有 CORS 简单请求可以工作。

于 2013-09-12T23:48:57.867 回答