Webhook 的 Node.JS https 服务器获取握手错误

标签 node.js ssl curl https webhooks

以下 NodeJS 仅处理来自另一个来源的 Webhook。我对其进行了测试,它可以在 http 端口 80 上运行,但源代码需要 https。

当我打开该端口并在 443 上运行此脚本时,使用 curl 对其进行测试时出现以下错误。但是我认为它不需要证书吗?我该如何解决这个问题?

curl: (35) SSL 对端握手失败,服务器很可能需要客户端证书才能连接

这是脚本:

var http = require('https')

var server = http.createServer(function(req, res) {
    if (req.method == "POST") {
        var str = ''
        req.on('data', function(data) {
            str += data
        })
        req.on('end', function() {
            var json = JSON.parse(str)
            res.end(json.meta.status)
        })
    }
})
console.log("HTTPS server listening on port 443...")
server.listen(443)

更新:

这是最新的代码。我创建了一个没有密码的自签名证书。我走得更远,但使用添加了 -k 选项的 curl 时仍然出现错误。如果没有 -k,我会收到证书验证错误。

无法发布/

var https = require('https')
var fs = require('fs')
var express = require('express');

var options = {
    key: fs.readFileSync('./server.key'),
    cert: fs.readFileSync('./server.cert')
}

var app = express()

var server = https.createServer(options, app, function(req, res) {
    if (req.method == "POST") {
        var str = ''
        req.on('data', function(data) {
            str += data
        })
        req.on('end', function() {
            var json = JSON.parse(str)
            res.end(json.meta.status)
        })
    }
})
console.log("HTTPS server listening on port 443...")
server.listen(443)

最佳答案

HTTPS 服务器配置始终需要 SSL 证书。您可以使用 openssl 生成它,此处位于 more details 中. 然后对于 Node 服务器使用 crypto,fs 模块。详细配置为 here .

关于Webhook 的 Node.JS https 服务器获取握手错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406055/

相关文章:

node.js - npm 错误! 404 未找到 : event-stream@3. 3.6

javascript - Jasmine : Add source method for test execution

python - discord.py `SSL certificate verify failed` 错误

python - 导入 pycurl 时出现 ImportError

javascript - 为mongodb中的操作创建函数

java - Jetty:如何在 Jetty 客户端使用 SSL

windows - 是否可以配置 Tomcat 7 SSL 以通过 SunMSCAPI 访问证书?

php - cURL:操作在 0 毫秒后超时

PHP CURL 发布请求和错误 417

javascript - grunt-contrib-sass 问题