Node.js的HTTPS示例出现错误:连接到localhost时出现未知的SSL协议错误。

24

我使用这些链接中的简单示例:

一个链接[如何在Node.js中创建HTTPS服务器?]

一个链接[如何创建HTTPS服务器?docs.nodejitsu.com]

但是我得到了以下错误:

curl:(35)在与localhost:-9838的连接中发生未知的SSL协议错误

为什么会这样?

1个回答

75

我用了错误的方式创建证书。

这个是错误的:

openssl genrsa -out key.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem

这是创建可用证书的方法:

openssl genrsa -out client-key.pem 2048
openssl req -new -key client-key.pem -out client.csr
openssl x509 -req -in client.csr -signkey client-key.pem -out client-cert.pem

1
太棒了!我一直在寻找这个。但为什么那是错误的方法?如果您能解释一下就太好了。 - Prabakaran Raja
6
我是新手,所以不知道答案 :) - Yan Li
对我来说,重要的区别在于 genrsa 命令中的 2048 - 如果没有它,那么默认密钥只有弱小的 512 位。我能找到的唯一关于该错误代码的参考是 Apple 源代码,其中它是一个 errSSLPeerInternalError(但距离 errSSLPeerInsufficientSecurity 只有一步之遥)。 - Xavier Holt
“-days 9999” 参数也适用于第二种方法。 - gabssnake
“-out” 文件的扩展名不应该是 “.crt” 吗? - progyammer
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接