从在 HTTPS 下运行的网站调用不安全端点 - nginx
Calling insecure endpoint from a website runs under HTTPS - nginx
我的应用程序在 HTTPS 下 运行,具有来自已知权威机构之一的有效证书。不幸的是,我使用的是不支持 HTTPS 的第三方 API。
The result is the known message Mixed content: mydomain.com requested an
insecure XMLHttpRequest endpoint.
是否可以向网络服务器添加一个例外以允许不安全地调用这个API!!我正在使用 Nginx 顺便说一句。
如果不是什么可以解决这个问题的其他可能性。
我有一个解决方案,但我不喜欢它,因为它会影响性能:
实现一个作为代理的 API,通过 HTTPS 接收来自应用程序的请求,并向第三方发出请求 API 抛出 HTTP。
为了允许混合内容,个人用户必须在他们的浏览器中允许它。允许来自一个来源的 HTTP 内容足以危及 HTTPS 的安全性,因此浏览器默认禁止混合内容。我看到的解决方案是:
- 摆脱 HTTPS(我不推荐)
- 执行您的建议并通过代理请求(这在安全方面仍然不是很好)
- 去掉 HTTP 内容
Google 在第 1 步下对开发人员有一些建议(但它们基本上与上面相呼应):https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#step-1
我也有这个问题。如果您使用 https 并且不想 warning/errors,页面上的所有内容都应该请求 https。如果您使用的是 nginx,则不需要实施 api 来代理。正如您正确推测的那样,无论您实施什么都会影响性能。只需在 nginx 中使用代理传递即可。
在我们的配置中,我们有:
location /thirdparty/ {
proxy pass http://thirdpartyserver/;
}
注意代理传递中的尾部斜杠,我保留了所有第三方 api,它们是 https://myserver/thirdparty/requesturl. Trailing slash removes thirdparty while making request. So it becomes, http://thirdpartyserver/request
中的 http
官方参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
我的应用程序在 HTTPS 下 运行,具有来自已知权威机构之一的有效证书。不幸的是,我使用的是不支持 HTTPS 的第三方 API。
The result is the known message Mixed content: mydomain.com requested an insecure XMLHttpRequest endpoint.
是否可以向网络服务器添加一个例外以允许不安全地调用这个API!!我正在使用 Nginx 顺便说一句。
如果不是什么可以解决这个问题的其他可能性。
我有一个解决方案,但我不喜欢它,因为它会影响性能:
实现一个作为代理的 API,通过 HTTPS 接收来自应用程序的请求,并向第三方发出请求 API 抛出 HTTP。
为了允许混合内容,个人用户必须在他们的浏览器中允许它。允许来自一个来源的 HTTP 内容足以危及 HTTPS 的安全性,因此浏览器默认禁止混合内容。我看到的解决方案是:
- 摆脱 HTTPS(我不推荐)
- 执行您的建议并通过代理请求(这在安全方面仍然不是很好)
- 去掉 HTTP 内容
Google 在第 1 步下对开发人员有一些建议(但它们基本上与上面相呼应):https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#step-1
我也有这个问题。如果您使用 https 并且不想 warning/errors,页面上的所有内容都应该请求 https。如果您使用的是 nginx,则不需要实施 api 来代理。正如您正确推测的那样,无论您实施什么都会影响性能。只需在 nginx 中使用代理传递即可。 在我们的配置中,我们有:
location /thirdparty/ {
proxy pass http://thirdpartyserver/;
}
注意代理传递中的尾部斜杠,我保留了所有第三方 api,它们是 https://myserver/thirdparty/requesturl. Trailing slash removes thirdparty while making request. So it becomes, http://thirdpartyserver/request
中的 http官方参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass