当我从终端运行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机器上运行这些。 证书是免费的,自签名的东西。
答案 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"重新生成证书。作为完全指定的网址。