微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于Facebook-messenger bot应用程序的安装webhhok上的自签名证书问题

我得到这个错误,当我试图设置Facebook的Messenger Messenger的webhookurl:

该url无法validation。 回叫validation失败,出现以下错误:curl_errno = 60; curl_error = SSL证书问题:证书链中的自签名证书; HTTP状态码= 200; HTTP消息=连接已build立

首先我创build了证书。

1)我使用这个configuration文件并创build了certificete权限:

如何发送来自Linux控制台的Facebook消息(命令行)

openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-crt.pem

2)我生成一个私钥

openssl genrsa -out server-key.pem 4096

然后我使用这个configuration文件生成证书签名请求

openssl req -new -config server.cnf -key server-key.pem -out server-csr.pem

之后,我执行命令:

openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in server-csr.pem -CA ca-crt.pem -CAkey ca-key.pem -CAcreateserial -out server-crt.pem

我没有configuration文件中的任何属性。 然后通过这种方式在Windows服务器上安装我的证书

在我的Node.js应用程序中,我使用这个选项创build了https服务器:

var server = https.createServer({ ca: fs.readFileSync('sslcert/ca-crt.pem','utf8'),key: fs.readFileSync('sslcert/server-key.pem',cert: fs.readFileSync('sslcert/server-crt.pem','utf8') },app); server.listen(port);

而当我试图设置webhook我上面的错误。 如果我在浏览器上打开我的webhookurl,

NET::ERR_CERT_AUTHORITY_INVALID

如果忽略此错误应用程序控制台显示状态200

没错,由于您的自签名证书位于证书链中,因此无法验证网址。 这是预期的行为。

自签名证书只适用于加密连接,但是他们没有传达证明第三方验证的另一个重要部分,即提供者是谁,他们是谁,这就是验证。

您需要获取带有此验证的证书以验证您的回叫网址。 你可以从一个有信誉的供应商那里购买一个,或者你可以使用像StartSSL这样的服务免费获得一个服务(我没有任何关联,我刚刚有与他们有良好的经验)。

你按照这个,然后使用letsencrypt你将得到这四个文件

1.cert.pem

2.chain.pem

3.fullchain.pem

3.privkey.pem

chain.pem是CA文件

在这里我也写了一个小的代码片段来使用这些。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐