gpt4 book ai didi

node.js - Node js ssl证书问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:40 25 4
gpt4 key购买 nike

当我在 Node.JS v0.10.36 上运行如下代码时 - 服务器响应 https 请求,但随后我在 Node.JS v4.2.1 上运行相同的代码 - 服务器根本没有响应,但是在那时间浏览器不会“说”出现任何问题 - 它只是继续加载页面。我应该以某种方式重写代码吗?

var express = require('express');
var https = require('https');
//var http = require('http');
var fs = require('fs');
var crypto=require('crypto')
var app = express();
var ssl_conf=require(__dirname+'/config/ssl.json');

var secureContext = {}

try{
for(var domain in ssl_conf){
secureContext[domain]=getSecureContext(ssl_conf[domain].domain);
}
}
catch(err){
console.log('error with ssl.config file '+err);

}

function getSecureContext (domain) {//returns secure context
return crypto.createCredentials({
key: fs.readFileSync('./ssl/'+domain+'.key'),
cert: fs.readFileSync('./ssl/'+domain+'.crt')
}).context;
}

var options = {
SNICallback: function (domain) {
return secureContext[domain];
},
//in case SNI is not available use this cert
cert: fs.readFileSync('./ssl/2_helena.softpro.ua.crt'),
key: fs.readFileSync('./ssl/2_helena.softpro.ua.key')
}

app.get('/',function(req,res){//simple route
res.send("your domain is "+req.hostname);
})

https.createServer(options, app).listen(443,function(){//run server
console.log('https server running on 443')
});

最佳答案

在最近的版本 12.0.0 + 下一个代码就可以了

var options = {
SNICallback:function(domain,cb){
var ctx= tls.createSecureContext(
secureContext[domain]//{key:<Buffer>,cert:<Buffer>}
).context
if(cb)
cb(null,ctx)
else
return ctx;
}
}

关于node.js - Node js ssl证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34463303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com