是否可以在不重新启动node.js中的服务器的情况下换出证书(比如是否更新)?当前打开的任何连接都已经信任服务器,因此不需要断开连接,但任何新连接都需要查看新证书。我想应该可以做这种热交换。是否有可能通过API node.js呈现?
或者是否有任何允许此节点的https模块?
答案 0 :(得分:0)
看起来这可以通过一种叫做SNICallback的东西来实现:
https://github.com/nodejs/node/issues/10349#issuecomment-268157842
var certs = {
"safe.myDomain.com": {
key: fs.readFileSync('../SSL/safe/private/key.pem'),
cert: fs.readFileSync('../SSL/safe/certs/cert.pem')
},
"api.myDomain.com": {
key: fs.readFileSync('../SSL/api/private/key.pem'),
cert: fs.readFileSync('../SSL/api/certs/cert.pem')
}
}
var httpsOptions = {
SNICallback: function(hostname, cb) {
var ctx = tls.createSecureContext(certs[hostname])
cb(null, ctx])
}
}
https.createServer(httpsOptions).listen(1443, function() {
console.log('HTTPS server is listening on port 1443')
})