Node.js HTTPS 错误(SSL_ERROR_NO_CYPHER_OVERLAP)-没有通用加密算法

Node.js HTTPS 错误(SSL_ERROR_NO_CYPHER_OVERLAP)-没有通用加密算法

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

相关内容