HTTPS POST 从服务器到 rpi-nodejs 通过 linksys 路由器的请求

HTTPS POST Request from server to rpi-nodejs thru linksys router

我正在尝试连接:Google 家庭设备 -> API.AI Webhook -> RPi/nodejs 但 API.AI Webhook 需要 https URL。我尝试 Hurl.it 到 POST 到我的路由器的 http url 并设置端口转发以使请求到达 rpi,我可以看到 post 来自终端 运行ning nodejs 适当响应请求。

但是当我将 Hurl.it 更改为 https:// url 时,更改路由器的端口转发以将 443 请求路由到相同的 rpi 地址并更改 .env 端口nodejs 应用程序侦听 80 到 443...如果我 运行 POST 请求,路由器日志记录 https 请求但 nodejs 应用程序不响应,它只是继续侦听端口 443。这是link 到 app.js:

KylesAppjsCode

我如何弄清楚为什么 nodejs 服务器应用程序没有收到请求,或者如果它收到请求,为什么它没有响应请求?

app.listen() currently always uses http 而不是 https,因此您需要创建自己的自定义 https 服务器并将 app 作为请求处理程序传递:

require('https').createServer({ /* https config */ }, app)
                .listen(process.env.PORT, function() {
  console.log('Listening on port ' + process.env.PORT);
});

而不是:

app.listen(process.env.PORT, function() {
  console.log('Listening on port ' + process.env.PORT);
});