我见过其他类似的问题,但没有一个能解决我的问题。我已经生成了 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