HTTPS на Nodejitsu с помощью Express

Хорошо. У меня есть приложение на экспресс, которое также использует Socket.io и прекрасно работает через HTTP. Однако теперь я должен перейти на HTTPS. Nodejitsu предоставляет много документации по этому вопросу. Они предлагают использовать node-http-proxy ( https://github.com/nodejitsu/node-http-proxy). Отлично!

Из кода для HTTP:

var server = http.createServer(app) // app is an Express instance
server.listen(config.port,config.hostip) // config.port is 80 for localhost and 3000 for Nodejitsu, config.hostip is 127.0.0.1 for localhost and 0.0.0.0 for Nodejitsu

Я получил это:

var server = http.createServer(app)
var options = {
  https: {
    key: fs.readFileSync(__dirname+"/ssl/privatekey.pem", 'utf8'),
    cert: fs.readFileSync(__dirname+"/ssl/certificate.pem", 'utf8')
  }
}
httpProxy.createServer(config.port, config.hostip, options).listen(3001,config.hostip)
var proxy = new httpProxy.HttpProxy({
  target: {
    host: config.hostip, 
    port: config.port
  }
})
https.createServer(options.https, function (req, res) {
  proxy.proxyRequest(req, res)
}).listen(3002,config.hostip)
server.listen(config.port,config.hostip)

Когда я, наконец, развернул (без ошибок во время развертывания), я захожу на страницу и вижу ошибку 502 Socket зависает. Хорошо, я могу сделать что-то не так, поэтому я просто скопирую и вставлю пример из https://github.com/nodejitsu/node-http-proxy "Прокси-сервер HTTP с HTTPS", чтобы проверить, работает ли он. Но это не так - ошибка 502.

Это работает отлично на моем localhost, хотя. Я также попытался запустить автономный сервер HTTPS без узла-https-прокси, но не повезло. Пожалуйста, помогите, я не могу решить эту проблему в течение нескольких недель.

1 ответ

Решение

Нашел сам. Nodejitsu предлагает SSL по умолчанию, просто зайдите на ваш сайт через HTTPS://. Чтобы пользовательские домены применяли сертификаты SSL, необходимо подписаться на бизнес-план.

Другие вопросы по тегам