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。
我制作了一个可以正常使用 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。