Я видел другие подобные вопросы, но они не решают мою проблему. Я сгенерировал свой самоподписанный сертификат TLS (openSSL), но, похоже, не работает на моем NodeJS
сервере.
Инструкция по генерации SSL
openssl req -newkey rsa:2048 -keyout key.pem -x509 -days 365 -out certificate.pem
openssl x509 -text -noout -in certificate.pem
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
openssl pkcs12 -in certificate.p12 -noout -info // verify certificate
Итак, в конце у меня есть .p12
, также известный как PFX
сертификат типа. Ниже мой Node.js код:
// ------- Start HTTPS configuration ----------------
const options = {
pfs: fs.readFileSync('./server/security-certificate/certificate.p12'),
passphrase: 'secrete2'
};
https.createServer(options, app).listen(8443);
// -------- End HTTPS configuration -----------------
// Also listen for HTTP
var port = 8000;
app.listen(port, function(){
console.log('running at localhost: '+port);
});
Вот вывод, когда я запускаю команду curl
, HTTP-запрос обслуживается правильно, только HTTPS имеет проблему:
Более того, если я сделаю это:
export CURL_CA_BUNDLE=/var/www/html/node_app/server/security-certificate/cert.p12
Тогда я получаю следующую ошибку:
curl: (77) Problem with the SSL CA cert (path? access rights?)
Если я пытаюсь получить доступ в браузере с HTTPS и портом, браузер говорит, что не может загрузить страницу.
Ссылочные ссылки, по которым я следовал:
Node.js HTTPS:
https://nodejs.org/dist/latest-v8.x/docs/api/https.html#https_https_createserver_options_requestlistener
Я использую AWS RedHat Linux