Я не мог использовать SNICallback на функции createServer
. Когда я попробую следующие коды, я получаю сообщение об ошибке Missing PFX or certificate + pricate key.
Я не могу использовать SNICallback
Как я могу решить эту проблему?
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')
})
спасибо! Итак, я должен предоставить сертификат по умолчанию для адреса 'api.mydomain.com'. И если адрес не является «api.mydomain.com», работает SNI, и если адрес «safe.mydomain.com», то вызывается адрес. Не так ли? Если это так, мне интересно, что пользователь, который хочет позвонить 'safe.mydomain.com', может передать' cert' по умолчанию? – efkan
По умолчанию, как вы его называете, для тех клиентов, которые не предоставляют имя хоста через SNI. –
Действительно спасибо Дэн, я занимаюсь протоколами безопасности моего проекта в течение одного месяца. И я измучен ... – efkan