我最近从 Positive ssl 购买了个人 ssl 证书。在我通过激活和验证解决了所有问题后,我终于能够下载证书文件了。
我得到的文件是:
www.niknet.ddns.net.ca-bundle
www.niknet.ddns.net.crt
www.niknet.ddns.net.p7b
Run Code Online (Sandbox Code Playgroud)
在我只使用.keyand之前.crt
,它工作得很好,但现在我正在使用.ca-bundleand 该.crt文件,这是我用来将这些文件包含到 Node js 中的 ssl 库中的代码
var httpPort = process.env.PORT || 80;
var httpsPort = process.env.PORT || 443;
var server = http.createServer(app).listen(httpPort);
var server = https.createServer({
secureProtocol : 'TLSv1_2_server_method',
ciphers : "AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH",
honorCipherOrder : true,
ca: fs.readFileSync(__dirname + '/niknet_ddns_net.ca-bundle'),
cert: fs.readFileSync(__dirname + '/niknet_ddns_net.crt')
},app).listen(httpsPort);
var io = require('socket.io').listen(server);
Run Code Online (Sandbox Code Playgroud)
但我一生都无法获得正常工作的证书。我刚刚收到这个错误
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Run Code Online (Sandbox Code Playgroud)
我一直在阅读其他帖子并尝试添加他们的代码但没有任何效果。我还在某处读到,node.js 的 ssl 或 tls 库已过时,并且我的证书可能太新。如果这是真的,我还可以使用其他第三方 ssl 库吗?