[英]Having a problem securing an Express API with TLS
我有一個 REST API 在帶有 Express 的 Node JS 上運行。
I keep having issues with CORS because the front end is HTTPS and the backend API is HTTPS which frequently, but not always gets reported as a violation.
我正在嘗試使用 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 所以沒有違規。
我還沒有看到專門解決這個問題的帖子,所以我不得不想知道我錯過了什么。 這必須是一個常見的場景。
謝謝你的幫助。
嘗試任何適合您的解決方案:
import * as Cors from 'cors';
const cors = Cors( { origin: true } );
app.use( cors );
var cors = require('cors');
var app = express();
app.use(cors());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.