mysql - 保护 Heroku 的 REST API
问题描述
我在 Heroku 上部署了一个 Angular Node.js Web 应用程序,但遇到了从我的服务器/数据库抓取数据的问题。
我有一个由 Vultr 托管的 linux 服务器,其中包含一个 MySQL 数据库。在这台服务器上,我创建了一个 REST api,使用 express 从数据库中获取数据。我在 heroku 的网站上遇到的问题是我在控制台中找到以下内容:
混合内容:“https://my-app.herokuapp.com/”页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“http://my-server-ip:3000/endpoint-name”。此请求已被阻止;内容必须通过 HTTPS 提供。
我将如何保护我的 REST api?我已经研究过获得 SSL 证书,但它们需要域名才能工作?我的 api 将 IP:Port 用于 express 应用程序,因此不涉及域。
我对此很陌生,所以任何帮助将不胜感激。
解决方案
以 HTTPS 加载网页时,XMLHttpRequest 必须是 HTTPS。为了实现 HTTPS 或 SSL 证书,您必须需要一个合格的域名。不再可能获得 IP 地址的 SSL 证书。要摆脱错误,您可以在 HTTP 中加载网页或使用 SSL 证书获取域。
推荐阅读
- c# - 库 youtubeExtractor 给我一个错误
- java - findByAll(), findBy{columnName} 在 Spring 数据 jpa 中不起作用
- reactjs - 将普通函数传递给 redux-saga 效果是否有效?
- lua - 我可以在 AwesomeWM 中运行间隔计时器吗?
- xml - 使用 XSLT 将 XML 数据转换为 HTML 表
- java - OpenClover 解析 XML 输出。爪哇
- azure-sqldw - 使用通配符复制到路径 = 索引超出范围
- prometheus - Grafana Prometheus 条时间间隔
- android - 如何使用 Room 数据库获取 7 天的数据
- python - 如何在循环中使用多个输入?