Node.js https连接使用现代密码无法正常工作

时间:2016-02-07 05:32:05

标签: javascript node.js ssl express https

我使用OpenSSL通过以下步骤生成证书:

〜/ openssl genrsa -out server.key 2048
〜/ openssl req -new -x509 -key server.key -out server.crt -days 730

然后将这些文件加载​​到node.js

var https = require('https');
var privateKey  = fs.readFileSync('./server.key', 'utf8');
var certificate = fs.readFileSync('./server.crt', 'utf8');
var credentials = {
    key: privateKey, 
    cert: certificate
};
var app = express();
var httpsServer = https.createServer(credentials, app);

这样,我的服务器按预期运行。但是在Chrome中,当我点击查看网站信息时,它说我使用了一个过时的密码套件" ..
所以我检查了Google的证书,它说的是现代密码套件"。
我的自签名证书和谷歌之间的唯一区别是密钥交换算法,这是我的RSA和谷歌的ECDHE_ECDSA。 所以我决定使用创建新证书;

〜/ openssl ecparam -name prime256v1 -genkey -param_enc explicit -out server.key
〜/ openssl req -new -x509 -key server.key -out server.crt -days 730

创建了文件,node.js没有任何错误。但是当我尝试连接到服务器时,我的浏览器只是关闭连接(ERR_CONNECTION_CLOSED)而服务器和客户端都没有错误指示。

我尝试了不同参数的不同私钥,但没有运气。某个地方的简单错误信息会有很大的帮助,但是我被困了几个小时谷歌搜索如何创建现代密码,尝试这些并最终没有任何东西。

所以我的问题是,我应该如何创建一个可以与Node.js https模块配合使用的自签名强/现代密码(使用openssl)?

0 个答案:

没有答案