Я видел другие подобные вопросы, но не решает мою проблему. Я создал свой самоподписанный сертификат 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:
Я использую AWS RedHat Linux