我正在尝试设置签名证书以在nodejs上设置HTTPS服务器。 但我一直在chrome中遇到以下错误(在其他浏览器上也是如此)。
"Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error."
当我使用自签名证书运行相同的代码时,它运行正常。
然后我运行openssl验证,似乎证书没问题。
$ openssl verify -CAfile ./ca.crt server.crt
server.crt: OK
这是我使用签名证书运行它的方式:
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var ca = fs.readFileSync('sslcert/ca.crt').toString();
var credentials = {key: privateKey, cert: certificate, ca: ca};
//Start Server
https.createServer(credentials, app).listen(httpsPort, function () {
console.log("Listening on port " + httpsPort + ' (https)');
});
答案 0 :(得分:0)
我发现了这个问题,我的错误是server.key与server.crt不匹配。 一个简单的测试发现了它。
请参阅:http://www.madboa.com/geek/openssl/#cert-test
openssl s_server -cert mycert.pem -www