express http-клиент подключается к серверу, https-клиент не может подключиться к серверу - PullRequest
0 голосов
/ 15 марта 2020

Я сделал сервер, который работает с http просто отлично. Сервер был включен, и я смог подключиться к нему с Chrome и почтальоном. Когда я переключаю сервер на https, сервер работает, но я не могу подключиться к нему с Chrome и почтальоном. ключи ssl были подписаны сервером certbot.

. 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;

1 Ответ

1 голос
/ 15 марта 2020

... сервер работает, но я не могу подключиться к нему с Chrome и почтальоном

Из вашего описания не ясно как именно вы пытаетесь подключиться к серверу, но я предполагаю, что вы попробуете простой https://example.com/.

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

Но в зависимости от вашего кода вы пытаетесь использовать HTTPS для порта, зарезервированного для простого HTTP (80), вместо использования порта по умолчанию для HTTPS (443). Таким образом, https://example.com/ не будет работать, так как при этом будет пытаться использовать порт 443, и вам потребуется явно указать другой порт с https://example.com:80/. Но лучшим вариантом, конечно, было бы использовать порт по умолчанию для HTTPS на первом месте в вашем коде, т.е. 443 вместо 80.

...