【发布时间】:2022-01-01 16:23:16
【问题描述】:
我有一个在 Node JS 上使用 Express 运行的 REST API。
我一直遇到 CORS 问题,因为前端是 HTTPS,而后端 API 是 HTTPS,这很常见,但并不总是被报告为违规。
我正在尝试使用 Let's Encrypt 证书来保护 API,但我似乎遗漏了一些东西。
这里是初始化快递服务器的代码:
require('dotenv').config();
const https = require("https"),
fs = require("fs");
const app = require("./src/app");
const port = process.env.PORT || 8000;
https
.createServer(
{
key: fs.readFileSync('/etc/letsencrypt/live/myserver.com/privkey.pem', 'utf8'),
cert: fs.readFileSync('/etc/letsencrypt/live/myserver.com/fullchain.pem', 'utf8')
},
app
)
.listen(8000, function() {
console.log('HTTPS listening on PORT 8000');
});
还有其他方法吗?还是我做错了?
CURL 仍然适用于 HTTP,这让我感到惊讶。不应该有 HTTP 服务器监听 8000。GET 调用在没有 SSL 配置的情况下工作,但 POST 总是失败。
所有 API 都在本地工作,只是当我将它推送到生产环境时它才会失败。但是,在本地,它没有运行 HTTPS,因此没有违规。
我还没有看到专门解决这个问题的帖子,所以我想知道我错过了什么。这一定是一种常见的情况。
感谢您的帮助。
【问题讨论】:
标签: node.js express api-design tls1.3