mysql - 保护 Heroku 的 REST API

标签 mysql express ssl heroku https

我在 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/

相关文章:

mysql - 并非所有来自 Logstash 的数据都被 Elasticsearch 索引

node.js - ExpressJS GET 重定向

node.js - Mongoose:每天创建多少用户

javascript - Socket.IO 应用程序未启动,无输出

MySQL:添加人与人之间的联系

MySQL 按用户分隔值

Mysqli 查询不工作

reactjs - 尝试使用 webpack 和 babel 加载 css 时出现意外标记

ssl - 如何更新 SSL 密码套件

java - Let's Encrypt + Hitch : Android OkHttp java. security.cert.CertPathValidatorException: 响应不可靠:它的有效期间隔已过期