【问题标题】:node http-proxy and HTTPS节点 http-proxy 和 HTTPS
【发布时间】:2017-06-22 22:41:48
【问题描述】:

我在让 https 与节点 http-proxy 一起工作时遇到问题。

我已经使用节点 http-server 创建了一个服务器

forever /usr/local/lib/node_modules/http-server/bin/http-server /home/blah/public_html/ -p 5000 -S -C /myencrypt/blah.com/cert.pem -K /myencrypt/blah.com/privkey.pem

如果我转到https://blah.com:5000,证书工作正常。

如果我去 blah.com,我会收到以下错误

Error: unable to verify the first certificate
    at TLSSocket.<anonymous> (_tls_wrap.js:1088:38)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:188:7)
    at TLSSocket._finishInit (_tls_wrap.js:610:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38)

我在这里错过了什么?

var fs = require('fs');
var http = require('http');
var https = require('https');
var httpProxy = require('http-proxy');

var proxy = httpProxy.createProxy();
var options = {  
  'blah.com':{
    target:'https://blah.com:5000',
    ssl:{
      key:fs.readFileSync('/myencrypt/blah.com/privkey.pem', 'utf8'),
      cert:fs.readFileSync('/myencrypt/blah.com/cert.pem', 'utf8')
    }
  }
}

http.createServer(function(req, res) {
  proxy.web(req, res, {
    target: options[req.headers.host].target,
    ssl : options[req.headers.host].ssl
  });
}).listen(80);

【问题讨论】:

    标签: node.js https node-http-proxy


    【解决方案1】:

    我决定使用redbird解决我的问题

    var redbird = require('redbird')({
        port: 80,
        secure:false,
        ssl: {
            port:443,
            key: "/myencrypt/blah.com/privkey.pem",
            cert: "/myencrypt/blah.com/cert.pem",
        }
    });
    
    redbird.register('blah.com', 'https://blah.com:5000', {
        ssl: {
            key: "/myencrypt/blah.com/privkey.pem",
            cert: "/myencrypt/blah.com/cert.pem",
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 2017-10-24
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      相关资源
      最近更新 更多