I couldn't manage using SNICallback on createServer
function.
When I try the below codes I get an error as Missing PFX or certificate + pricate key.
How can I solve this issue?
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')
})
SNICallback works great in NodeJS. I use it in production all the time. Here is a Stackoverlow answer with a detailed example of how to make it work.
Is it Possible to Dynamically Return an SSL Certificate in NodeJS?
The options to
https.createServer
must includekey
andcert
as they are required. Even though that set won't be used if SNI provides a hostname.See
tls.createServer
where it markskey
andcert
as required. (Linked fromhttps.createServer
.)