express http客户端连接到服务器,https客户端无法连接到服务器

express http client connect to server , https client can't connect to server

我制作了一个可以正常使用 http 的服务器。服务器已启动,我可以使用 Chrome 和 Postman 连接到它。当我将服务器切换到 https 时,服务器已启动,但我无法使用 Chrome 和 Postman 连接到它。 SSL 密钥由 certbot 签名。

server.js

const https = require('https');
const app = require(__dirname+'/app');
const fs = require('fs');

const port = 80;
const options = {
    cert: fs.readFileSync("ssl/v2/fullchain.pem"),
    key: fs.readFileSync("ssl/v2/privkey.pem")
}

https.createServer(options, app).listen(port);
console.log(port);

app.js

const express = require('express');
const morgan = require('morgan');
const body_parser = require('body-parser');

const homepage = require(__dirname+'/routes/homepage');
const user = require(__dirname+'/routes/user');
const test = require(__dirname+'/routes/test');
const table = require(__dirname+'/routes/table');
const catalog = require(__dirname+'/routes/catalog');
const cart = require(__dirname+'/routes/cart');
const payment = require(__dirname+'/routes/payment');

const app = express();

app.use(morgan("dev"));
app.use(body_parser.json());
app.use(body_parser.urlencoded({extended: true}));

app.use("/", homepage);
app.use("/user", user);
app.use("/test", test);;
app.use("/table", table);
app.use("/catalog", catalog);
app.use("/cart", cart);
pp.use("/payment", payment);

module.exports = app;

... the server is up, but I can't connect to it with Chrome and Postman

从您的描述中不清楚您尝试连接到服务器的具体方式,但我假设您会尝试一个简单的https://example.com/

const port = 80;
...
https.createServer(options, app).listen(port);

但是根据您的代码,您正尝试在为纯 HTTP (80) 保留的端口上使用 HTTPS,而不是使用 HTTPS (443) 的默认端口。因此,https://example.com/ 将不起作用,因为这将尝试使用端口 443,您需要使用 https://example.com:80/ 显式指定不同的端口。但是更好的选择当然是在代码中首先使用 HTTPS 的默认端口,即 443 而不是 80。