首页 > 解决方案 > 保护 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 应用程序,因此不涉及域。

我对此很陌生,所以任何帮助将不胜感激。

标签: mysqlexpresssslherokuhttps

解决方案


以 HTTPS 加载网页时,XMLHttpRequest 必须是 HTTPS。为了实现 HTTPS 或 SSL 证书,您必须需要一个合格的域名。不再可能获得 IP 地址的 SSL 证书。要摆脱错误,您可以在 HTTP 中加载网页或使用 SSL 证书获取域。


推荐阅读