我的应用程序在HTTPS下运行,其中包含来自其中一个已知权限的有效证书。不幸的是,我使用的第三方API并不支持HTTPS。
结果是已知消息混合内容:mydomain.com请求了 不安全的XMLHttpRequest端点。
是否有可能 向Web服务器添加例外以允许不安全地调用此API!我正在使用Nginx BTW。
如果不是什么可以解决这个问题的其他可能性。
我有一个解决方案,但我不喜欢它,因为它会带来性能上的劣势:
实现充当代理的API,通过HTTPS接收来自应用程序的请求,并向第三方API发出请求抛出HTTP。
答案 0 :(得分:3)
我也有这个问题。如果您使用https并且不想要警告/错误,页面上的所有内容都应该来请求https。如果您使用的是nginx,则无需为代理实现api。无论你实施什么,都会因为你正确猜测而受到性能影响。只需在nginx中使用代理传递即可。 在我们的配置中,我们有:
location /thirdparty/ {
proxy pass http://thirdpartyserver/;
}
注意代理传递中的尾部斜杠,我将所有第三方api保留为https://myserver/thirdparty/requesturl中的http。尾部斜杠在发出请求时删除了第三方。所以变成了http://thirdpartyserver/request
官方参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
答案 1 :(得分:0)
为了允许混合内容,各个用户必须在其浏览器中允许它。允许来自一个源的HTTP内容足以危及HTTPS的安全性,因此浏览器默认禁止混合内容。我看到的解决方案是:
Google在第1步中为开发人员提供了一些建议(但基本上已在上面回应):https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#step-1