我在 Heroku 上部署了一个 Angular Node.js Web 应用程序,但遇到了从我的服务器/数据库抓取数据的问题。
我有一个由 Vultr 托管的 linux 服务器,其中包含一个 MySQL 数据库。在这台服务器上,我创建了一个 REST api,使用 express 从数据库中获取数据。我在 heroku 的网站上遇到的问题是我在控制台中找到以下内容:
Mixed Content: The page at 'https://my-app.herokuapp.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://my-server-ip:3000/endpoint-name'. This request has been blocked; the content must be served over HTTPS.
我将如何保护我的 REST api?我已经研究过获得 SSL 证书,但它们需要域名才能工作?我的 api 将 IP:Port 用于 express 应用程序,因此不涉及域。
我对此很陌生,所以任何帮助将不胜感激。
最佳答案
以 HTTPS 加载网页时,XMLHttpRequest 必须是 HTTPS。为了实现 HTTPS 或 SSL 证书,您必须需要一个合格的域名。不再可能获得 IP 地址的 SSL 证书。要摆脱错误,您可以在 HTTP 中加载网页或使用 SSL 证书获取域。
关于mysql - 保护 Heroku 的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62493952/