我不能使用SNICallback

我无法pipe理使用createServer函数上的SNICallback。 当我尝试下面的代码时,我得到一个错误,因为Missing PFX or certificate + pricate key.

我该如何解决这个问题?

 var fs = require('fs'), tls = require('tls'), https = require('https'); 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') }) 

https.createServer的选项必须包含keycert因为它们是必需的。 即使SNI提供主机名,也不会使用该设置。

请参阅tls.createServer它在哪里标记keycert根据需要。 (从https.createServer链接)

SNICallback在NodeJS中很好用。 我一直在生产中使用它。 下面是一个Stackoverlow的答案,以及如何使其工作的详细示例。

是否有可能在NodeJS中dynamic返回SSL证书?