【问题标题】:Node.JS https server for Webhook gets handshake errorWebhook 的 Node.JS https 服务器收到握手错误
【发布时间】:2015-12-01 02:01:28
【问题描述】:

以下 NodeJS 仅处理来自其他来源的 webhook。我测试了一下,它可以在 http 端口 80 上工作,但源需要 https。

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

curl: (35) SSL peer handshake failed, the server most likely requires a client certificate to connect

这是脚本:

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,我会收到证书验证错误。

Cannot POST /

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)

【问题讨论】:

    标签: node.js ssl curl https webhooks


    【解决方案1】:

    HTTPS 服务器配置始终需要 SSL 证书。您可以使用openssl 生成它,这里是more details。 然后对于节点服务器使用 crypto,fs 模块。详细配置为here

    【讨论】:

    • 这很有帮助,但我仍然无法让它工作,至少不是那样。它说密码读取错误。如何在证书中包含密码?
    • 尝试添加passphrase 选项以及keycert。 @NathanMcKaskle
    • 没有奇迹,好吧。尝试使用 ket/cert without passphrase。 @NathanMcKaskle
    • 哦,我看没关系,您将其与创建不带密码短语的证书相关联。我会试试的。
    • 查看我对上面帖子的更新。你所说的似乎让服务器至少现在可以运行。也许我做错了什么。
    猜你喜欢
    • 1970-01-01
    • 2015-08-17
    • 2016-08-31
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多