首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点http-proxy和HTTPS

节点http-proxy和HTTPS
EN

Stack Overflow用户
提问于 2017-06-23 06:41:48
回答 1查看 679关注 0票数 0

我有问题让https与节点http-proxy一起工作。

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

代码语言:javascript
复制
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,我会得到以下错误

代码语言:javascript
复制
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)

这里我漏掉了什么?

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2017-06-24 03:27:42

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

代码语言:javascript
复制
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",
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44710422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档