如何停止混合内容浏览器调用 App Engine 灵活环境 API 时出现错误?



我在浏览器中收到此错误:

Mixed Content: The page at 'https://{my-site}' was loaded over HTTPS, but 
requested an insecure XMLHttpRequest endpoint 'http://{my-api}'. This request 
has been blocked; the content must be served over HTTPS.

我知道我需要以某种方式允许https。该应用程序使用 Gunicorn 在自定义 Google App Engine 灵活环境中运行该应用程序。它也使用烧瓶。这是我的应用程序.yaml:

runtime: custom
env: flex
service: flex-module
entrypoint: gunicorn -b :$PORT main:app

是否可以更改可扩展服务代理中的某些设置以允许 App Engine 中的 https?或者我是否需要获取 ssl 证书和密钥并将以下内容添加到我的 app.yaml:

gunicorn -w3 --certfile=server.crt --keyfile=server.key test:app

另外,我不确定是否需要将其添加到gunicorn.conf.py中,如本文档所示:

forwarded_allow_ips = '*'
secure_scheme_headers = {'X-APPENGINE-HTTPS': 'on'}

谢谢

如文档中所述,Google 不会为托管在以下 appspot.com 的双通配符域颁发 SSL 证书:

注意:Google 建议您使用 HTTPS 协议向应用发送请求。 Google 不会为托管在 appspot.com 的双通配符网域颁发 SSL 证书。因此,HTTPS 请求必须使用字符串"-dot-"作为 URL 表示法,而不是使用"."来分隔子域。您可以使用简单的"."具有您自己的自定义域和其他 HTTP 地址的 URL 表示法。有关详细信息,请参阅以下部分中的 HTTP 和 HTTPS 示例。

因此,为了允许通过https进行API请求并避免混合内容浏览器错误,我需要将请求发送到:https://version-one-dot-my-app.appspot.com而不是http://version-one.my-app.appspot.com

若要进行 HTTPS 调用,请通过将以下配置添加到 app.yaml 文件来为应用启用 ssl 库:

libraries:
  • 名称: SSL中文名 版本:最新

https://google-auth.readthedocs.io/en/latest/user-guide.html

相关内容

  • 没有找到相关文章

最新更新