SSL握手失败,带有自签名证书

时间:2015-12-03 02:19:18

标签: node.js curl https ssl-certificate handshake

当我从终端运行curl -k https://localhost:8080/时,出现以下错误:

curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

代码:(语言是coffeescript)

https = require 'https'

fs = require 'fs'

options = 
  key: fs.readFileSync('server.key')
  cert: fs.readFileSync('server.crt')
  requestCert: false
  rejectUnauthorized: false

server = https.createServer(options, 
  (req, res) =>
    console.log "TEST"
)

server.listen(process.env.PORT, process.env.IP)

其他信息: 我在Cloud9的UNIX机器上运行这些。 证书是免费的,自签名的东西。

1 个答案:

答案 0 :(得分:1)

来自:http://www.akadia.com/services/ssh_test_certificate.html

"在生成CSR期间,系统将提示您输入多条信息。这些是证书的X.509属性。其中一个提示将是" Common Name(例如,您的名字)"。 请务必使用SSL保护的服务器的完全限定域名填写此字段。如果要保护的网站为https://public.akadia.com,请输入public.akadia .com在此提示下。"

" Common Name"之间的不匹配在证书和您curl的网址将导致您遇到的问题!尝试使用" Common Name"重新生成证书。作为完全指定的网址。