我已经使服务器可以正常使用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;
答案 0 :(得分:1)
...服务器已启动,但我无法通过Chrome和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。