ssl - 在 node.js 中使用 https.request 时套接字挂起

标签 ssl node.js

在 node.js v04.7 中使用 https.request 时,出现以下错误:

Error: socket hang up
    at CleartextStream.<anonymous> (http.js:1272:45)
    at CleartextStream.emit (events.js:61:17)
    at Array.<anonymous> (tls.js:617:22)
    at EventEmitter._tickCallback (node.js:126:26)

将生成错误的简化代码:

var https = require('https')
  , fs    = require('fs')

var options = {
  host: 'localhost'
, port: 8000
, key: fs.readFileSync('../../test-key.pem')
, cert: fs.readFileSync('../../test-cert.pem')
}

// Set up server and start listening
https.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'})
  res.end('success')
}).listen(options.port, options.host)

// Wait a second to let the server start up
setTimeout(function() {
  var clientRequest = https.request(options, function(res) {
    res.on('data', function (chunk) {
      console.log('Called')
    })
  })

  clientRequest.write('')
  clientRequest.end()
}, 1000)

即使服务器和客户端在不同的 Node 实例上运行,并且已经使用端口 8000、3000 和 443 以及使用和不使用 SSL 证书进行了测试,我还是会收到错误消息。我的 Ubuntu 机器上确实有 libssl 和 libssl-dev。

关于可能是什么原因的任何想法?

最佳答案

https.createServer(function (req, res) {

您在创建服务器时缺少选项,应该是:

https.createServer(选项, 函数 (req, res) {

里面有你的 key 和证书

关于ssl - 在 node.js 中使用 https.request 时套接字挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5878740/

相关文章:

ssl - Erlang SSL 前向保密

javascript - 有没有办法将 Nest JS 与 Sapper (Svelte) 一起使用?

javascript - 如何修复 Node js 中的错误 Invalid Sec-WebSocket-Accept header?

javascript - 登录检索器上的 Sequelize 查找总是成功

c++ - 如何在 Node.js 中设置最大缓冲区大小?

node.js - 在react.js中附加表单请求时,Requestbody在服务器node.js中显示未定义

php - htaccess 删除尾部斜杠,强制 HTTPS,隐藏 php 扩展

ssl - IIS 重写反向代理在使用 SSL 时出现 HTTP 502 错误

python - 如何在 Python 中使用 SSL 和身份验证连接到 SOAP 服务(没有 WSDL)?

ssl - kafka - ssl握手失败