2016-04-26 51 views
6

我的应用程序在HTTPS下运行,并使用来自某个已知权威机构的有效证书。不幸的是,我正在使用不支持HTTPS的第三方API。在HTTPS下调用不安全的端点从一个网站运行 - nginx

结果是已知邮件混合内容:mydomain.com请求 不安全的XMLHttpRequest端点。

是否有可能一个例外添加到Web服务器允许不安全调用此API!我正在使用Nginx BTW。

如果不是什么可以解决这个问题的其他可能性。

我有一个解决方案,但我不喜欢它,因为它会是一个性能缺点:

实现充当代理的API,通过HTTPS接收来自应用程序的请求,并将请求第三方API会抛出HTTP。

+0

难道我的回答解决这个问题?如果你需要配置帮助,我可以。 – khrm

+0

@khrm明天会试一试并更新你 –

回答

3

我也有这个问题。如果您使用的是https并且不需要警告/错误,则页面上的所有内容都应该发送并请求https。如果你使用nginx,你不需要实现一个代理API。无论您实施什么方法,都会在您正确推测的情况下影响性能。只需在nginx中使用代理传递。 在我们的配置中,我们有:

location /thirdparty/ { 
     proxy pass http://thirdpartyserver/; 
} 

请注意,在代理通最后的斜线,我把所有的第三方API,它是HTTP的https://myserver/thirdparty/requesturl。在提出请求时,尾部斜线删除第三方。所以就变成,http://thirdpartyserver/request

官方参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

0

为了允许混合内容,个人用户必须在浏览器中允许它。允许来自一个源的HTTP内容足以危及HTTPS的安全性,因此浏览器默认禁止混合内容。我看到的解决方案是:

  1. 摆脱HTTPS(我不推荐)
  2. 做你的建议和代理请求通过的(这仍然不是很大的安全明智)
  3. 摆脱在HTTP内容

的谷歌已经为下步开发人员1的一些建议(但他们基本上都是上面呼应):https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#step-1

+0

感谢您的回复,我不会去掉HTTPS。通过这篇文章,但没有找到要找的东西,发布此作为有人可能会提供另一个想法。 –

+0

是的那篇文章基本上概述了我上面所说的。从可用性角度来看,这是不幸的,但从安全角度来看,混合内容被阻止是最重要的 – winhowes

相关问题