HTTPS和Node.Js根本不起作用

HTTPS和Node.Js根本不起作用,node.js,https,Node.js,Https,我正在使用Node.Js和旅程构建一个JSON服务。在HTTP上一切都很好,但我需要让它在HTTPS上工作。我相信我已经正确地实现了HTTPS,但无论我做什么,HTTPS连接都会在握手过程中终止 var http = require('https'); //CODE var httpsServer = http.createServer({ pfx: fs.readFileSync('SSLCertificate_Wildcard.pfx') }, function (request, resp

我正在使用Node.Js和旅程构建一个JSON服务。在HTTP上一切都很好,但我需要让它在HTTPS上工作。我相信我已经正确地实现了HTTPS,但无论我做什么,HTTPS连接都会在握手过程中终止

var http = require('https');
//CODE
var httpsServer = http.createServer({ pfx: fs.readFileSync('SSLCertificate_Wildcard.pfx') }, function (request, response) {
    console.log('Incoming Request', { url: request.url });
    request.on('end', function () {
        router.handle(request, body, function (route) {
             //CODE
        });     
    });  
});
httpsServer.listen(11555);

我已经为checkContinue、connection、connect、upgrade、clientError和error附加了事件处理程序,并且只引发了连接。

您是否看到chrome通过chrome开发者工具网络选项卡发出请求? 从经验来看,https工作得非常好,所以我猜测它要么没有发出,要么错误地作为http发出。
另外,我希望您不是从http网站运行,这是一个https json调用,因为这是一个安全问题,会被chrome阻止。您必须运行https网站才能启用来自客户端的https调用。

我假设您执行了var http=require'https';,但是这会让你的代码看起来很混乱。我这么做是因为我承认我很懒,不想把http的每一个引用都转换成https。不过我会编辑这个问题来说明这一点。您看到您的传入请求记录到控制台了吗?如果您没有看到任何错误,您如何/何时知道在握手过程中连接被终止?我知道它在握手过程中被终止,因为这是fiddler告诉Meth的,因为1我在开发工具中看到它被发送,2我使用fiddler以相同的结果发送它如果由于握手而失败,这是一个安全问题。你的网站也使用https吗?您的网站和公开json的服务器是否使用相同的证书?只需点击url,还没有AJAX,只需直接在地址栏中键入json调用url,因此浏览器可能找不到适合服务器的加密算法。查看为https服务器生成开发pem文件的步骤,并使用它进行测试。我知道我在用它,而且效果很好。var https=require'https',pem=require'pem';pem.createCertificate{days:1,自签名:true},functionerr,keys{https.createServer{key:keys.serviceKey,cert:keys.certificate},functionreq,res{res.endo!}.listen443;};我尝试过,但现在节点退出,而从未调用对createCertificate的回调