heroku 连接关闭代码=H13

2023-11-22

我在heroku上部署一个简单的nodejs服务器,并使用ssl有效证书

var https = require('https');
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');

var app = express();
var cors = require('cors');

var credentials = {
    key: fs.readFileSync('./cert/key.key'),
    cert: fs.readFileSync('./cert/cert.crt'),
    ca: fs.readFileSync('./cert/bundle.crt'),
    requestCert: true,
    rejectUnauthorized: false
};

var server = https.createServer(credentials, app);

var io = require('socket.io')(server);

app.use(cors()); 
app.use(bodyParser.json({limit: '12mb'})); 
app.use(bodyParser.urlencoded({limit: '12mb', extended: true }));

io.on('connection', function(socket){
   console.log(socket);
   socket.on('authenticate', function(data){

      console.log(data);
   });
});

var port = process.env.PORT || 8080;

server.listen(port, function () {
    console.log("server listen on", this.address());
});

server.on('clientError', function(err) {
    console.log('ERROR', err);
});

问题是当我启动应用程序时收到此错误

ERROR { Error: socket hang up
at TLSSocket.<anonymous> (_tls_wrap.js:820:25)
at emitOne (events.js:101:20)
at TLSSocket.emit (events.js:188:7)
at Socket._handle.close (net.js:492:12)
at Socket.g (events.js:286:16)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at TCP._handle.close [as _onclose] (net.js:492:12) code: 'ECONNRESET' }

当我尝试通过 chrome 连接到我的服务器时,我收到此错误 在服务器端

2017-01-05T15:03:43.465542+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/socket.io/?EIO=3&transport=polling&t=LblA3JZ" host=www.myapp.com request_id=51982ce9-99e3-4677-acb4-a0f14eb88999 fwd="95.251.90.218" dyno=web.1 connect=1ms service=2ms status=503 bytes=0
2017-01-05T15:03:43.460178+00:00 app[web.1]: ERROR Error: 140414443095936:error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request:../deps/openssl/openssl/ssl/s23_srvr.c:394:

以及客户端的这个错误

XMLHttpRequest cannot load https://www.myapp.com/socket.io/?EIO=3&transport=polling&t=LblDK25. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.0.8:8100' is therefore not allowed access. The response had HTTP status code 503.

一开始我以为是 socket.io,但正常 REST 操作时问题仍然存在。 现在我认为我有 SSL 问题。我与 godaddy 提供商创建了一个有效的证书,并成功将其上传到 heroku。事实上,如果我尝试通过 https 连接连接到我的应用程序,则证书是有效的。也许问题是当我尝试将此证书上传到我的 Nodejs 应用程序时。有人可以帮助我吗?提前致谢


您应该使用 HTTP 服务器而不是 HTTPS。 SSL 终止发生在 Heroku 的负载均衡器上;它们向您的应用程序发送普通(非 SSL)流量,因此您的应用程序应该创建一个非 HTTPS 服务器。

Heroku 上的 HTTPS + SSL - Node + Express

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

heroku 连接关闭代码=H13 的相关文章

  • node-cron 每 3 小时运行一次作业

    我试图每 3 小时运行一次 node cron 作业 但我不确定我做得是否正确 现在我正在使用 8 它是否正确 您应该将秒和分钟值清零 并使用 3 的步长 其 cron 表达式是 0 0 3 其计算结果为 每 3 小时 0 秒 0 分钟 你
  • 从 Angular Controller 调用节点函数的常用方法

    让我在这之前加上我是 Node Express 新手 我有一个 AngularJS 应用程序 它利用 Node JS 来管理 Azure Blob 需求 例如创建 Blob 容器 如下所示 function test containerNa
  • 错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT - Heroku

    我正在尝试在 heroku 上部署我的服务器 我收到这个错误 Error R10 Boot timeout gt Web process failed to bind to PORT within 60 seconds of launch
  • .NET 4.5 和 .NET 4.5.1 是否默认启用 TLS 1.1 和 TLS 1.2?

    在我们的 Windows 2012 Server R2 上 我们需要禁用 TLS 1 0 不过 我们正在运行 NET 4 5 Wcf 服务 我们发现 如果禁用 TLS 1 0 WCF 服务将不再运行 因为我们收到错误 现有连接被远程主机强制
  • 通过 cypress JS 进行分页测试

    I need to test that when I select some model car as a result I have only that model in all pages So basically I do pagin
  • 何时使用 Passport.js?

    过去几个月我一直在节点中进行开发 试图理解这个框架 现在我实际上要尝试为多个设备制作一个应用程序 我想使用节点项目作为 api 它将处理所有 post 和 get 请求 在另一个节点项目中 我将有一个 React Web 界面 使用 aja
  • cron 任务是否会阻塞主进程或者nodejs 会创建一个worker 来执行cron 任务

    我在用节点 cron https github com ncb000gt node cron每分钟执行一些繁重的任务 更新数据库 这个任务是使用主进程来工作还是nodejs会创建一些工作人员来完成这些任务 var CronJob requi
  • 在 Sails js 中调用 REST API

    我使用 Sails js 我不知道如何调用 REST api 并获取响应数据 我的控制器 var request require request var http require http var https require https m
  • PayPal IPN 确认因 SSL 例程失败:SSL3_READ_BYTES:sslv3 警报握手失败

    由于我们方面没有进行任何更改 并且可能与 POODLE SSL3 有关 因此您的 PayPal API 对 PIN Message validate 的调用现在失败了 SSL routines SSL3 READ BYTES sslv3 a
  • fetch API 不通过 post 发送数据

    我在使用 Fetch API 通过 post 发送数据时遇到问题 服务器只收到一个空的 JSON 有人能帮我吗 基本上 我正在更新状态数据并将其发送到 API 提交的数据 请求 submitedData async event gt eve
  • req.body 为空 Express js

    我花了几个小时试图找出为什么 req body 是空的 我在 stackoverflow 上到处查看并尝试了所有方法 但没有运气 Express js POST req body 空 https stackoverflow com ques
  • 使用绝对 url 前缀获取

    大多数时候我都会加上前缀fetch https developer mozilla org en US docs Web API Fetch API Using Fetch or 节点获取 https www npmjs com packa
  • 为 Moodle 创建 LTI 提供程序

    我正在尝试为 Moodle 创建一个 LTI 提供程序 我需要从 Moodle 获得的信息 课程名称 学生和教师 以及启用单点登录 获取会话 令牌 cookie 我做了一项研究 发现 Moodle 3 支持 LTI v2 这基本上是通过 R
  • Firebase 数据库 onWrite 的 Cloud Functions 触发两次

    您好 我正在开发一个通知系统 但我在删除已处理的通知数据时遇到问题 这onWrite事件侦听器被触发两次 从而产生两个通知 您能帮我找到解决方法 以便 onWrite 事件侦听器不应该被触发两次吗 删除已处理的数据很重要 exports s
  • 在 Traefik 1.5.0-rc5 中使用新的 httpChallenge 时出现问题

    在尝试升级到最新的 traefik 版本以便能够从 LetsEncrypt 生成 TLS 证书时 我遇到了证书生成时间的问题 这之前工作过traefik 1 4使用acme ondemand标志和其他设置 减去httpChallenge当然
  • ER_TRUNCATED_WRONG_VALUE:日期时间值不正确

    我最近完成了一个研究项目的申请 一切都很好 我剩下的就是将应用程序投入生产 我正在将 MySQL 与 Node js 结合使用 我知道 我们不喜欢这样 但总得有人尝试一下 我有一个套接字 它向 mysql 消息表添加一条聊天消息 其中包含文
  • HTTPS 和 SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA 正常

    我在用XAMPP http www apachefriends org为发展 最近我将 xampp 的安装从旧版本升级到 1 7 3 现在 当我卷曲启用 HTTPS 的网站时 出现以下异常 致命错误 未捕获异常 RequestCore Ex
  • Node.js 10 的 TypeScript tsconfig 设置?

    有谁知道 Node js v10 x 需要哪些目标 库才能在没有生成器的情况下使用内置的 async await 我看到很多关于节点 8 的信息 但没有看到关于节点 10 的信息 从 Node js 开始10 0 0 100 支持ES201
  • MongoDB $geoIntersects 不适用于包含负顶点的多边形

    我已在数据库中存储了跨越 x 轴和 y 轴的多边形 并且我想搜索包含给定点的多边形 为此 我使用 geoIntersects 运算符来指定一个点 但是 当多边形穿过轴时 MongoDB 不会返回任何多边形 我可以对查询或架构进行任何小的更改
  • Python 使用 ssl.getpeercert() 从 URL 获取通用名称

    我正在尝试获取证书颁发者信息 通用名称 但链接中的代码不适用于某些 URL 如何在 python 中获取证书颁发者信息 https stackoverflow com questions 30862099 how can i get cer

随机推荐