簡體   English   中英

使用 TLS 保護 Express API 時遇到問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM