443 порт с использованием Express

159
31 октября 2018, 20:30

Есть такой код, который прослушивает 443 порт:

const WebSocketServer = require('ws').Server,
  express = require('express'),
  https = require('https'),
  app = express(),
  fs = require('fs');
const pkey = fs.readFileSync('./ssl/key.pem'),
  pcert = fs.readFileSync('./ssl/cert.pem'),
  options = {key: pkey, cert: pcert, passphrase: '123456789'};
var wss = null, sslSrv = null;
// use express static to deliver resources HTML, CSS, JS, etc)
// from the public folder 
app.use(express.static('public'));
app.use(function(req, res, next) {
  if(req.headers['x-forwarded-proto']==='http') {
    return res.redirect(['https://', req.get('Host'), req.url].join(''));
  }
  next();
});
// start server (listen on port 443 - SSL)
server = https.createServer(app).listen(80);
sslSrv = https.createServer(options, app).listen(443);
console.log("The HTTPS server is up and running");

Но проблема в том, что при запуске node server.js с данным кодом в браузере не открывается ничего. В чем проблема? Код правильный, т.к. в консоли отображается соответствующее сообщение. Спасибо.

Answer 1

Это если у вас есть сертификаты или Вы сумеете их сгенерировать

const https = require('https');
const fs = require('fs');
const options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);

это если нету/не сможете

var https = require('https')
var pem = require('pem')
pem.createCertificate({ days: 1, selfSigned: true }, function (err, keys) {
  if (err) {
    throw err
  }
  https.createServer({ key: keys.serviceKey, cert: keys.certificate },     function (req, res) {
    res.end('o hai!')
  }).listen(443)
})

перед запуском нужно установить библиотеку pem командой npm install pem в консоли

пс: это примеры из документации. детальнее https://nodejs.org/api/https.html и тут https://github.com/Dexus/pem

READ ALSO
За получить адрес сайта без доменного имени?

За получить адрес сайта без доменного имени?

Как с помощью javascript получить адрес сайта без доменного имени?

155
Определение цвета элемента в canvas при клике

Определение цвета элемента в canvas при клике

Возникла проблема с получением нужного цветаВ canvas нарисовала две фигуры

196
Стоит ли учить JavaScript как первый язык? [закрыт]

Стоит ли учить JavaScript как первый язык? [закрыт]

я хочу спросить стоит ли учить JavaScript как первый язык? Если нет, то посоветуйте какие стоит учить как первый язык?

143