带有自签名证书的 Telegram bot webhook 不起作用

Posted

技术标签:

【中文标题】带有自签名证书的 Telegram bot webhook 不起作用【英文标题】:Telegram bot webhook with self signed certificate is not working 【发布时间】:2016-03-12 05:23:57 【问题描述】:

我正在尝试按照此处记录的方式设置电报机器人 - https://core.telegram.org/bots/api#setwebhook。

我已经尝试了几乎所有方法来使用我自己的自签名证书,但在使电报调用我通过它的 URL 时还没有成功,即使它返回了 OK 结果

"ok":true,"result":true,"description":"Webhook was set"
我可以成功调用其他方法,它们都工作得很好。 我使用 CPanel 和 openssl 生成证书并尝试了这两种方法。 我使用了一个简单的 html 表单来调用setWebhook 方法和一个 php curl 脚本 我试图传递我网站的 URL 和 IP 地址 我多次测试了我传递的 webhook URL,并尝试了不同的简单脚本来跟踪对它们的任何调用 我也检查了这里的所有问题,但都没有解决

有什么我没有尝试或考虑过的吗?

PS:购买经过验证的证书对我来说不是一个选择,我已经尝试了一些免费的 ssl 提供商,例如 startssl(他们不接受我的域名,因为它以 .ir 结尾,没有合理的理由,但不应该在这里相关,对吧?)。

【问题讨论】:

你尝试过所有这些core.telegram.org/bots/self-signed 吗? @pengrad,全部 5 次,但我已经熟悉证书,我真的不认为这是问题所在。不知何故,电报在自签名证书方面存在问题。作为测试,我尝试了另一台带有经过验证的证书的主机,它只是简单地工作 @azerafati salam, rahe halli baraye moshkel peida kardid? man ham hamin moshkel ro daram , mamnoon misham agar komak konid。嗨,你找到解决方案了吗,我也有这个问题,不胜感激。 @darenshan,我最终使用了cloudflare。效果很好 @azerafati tnx 很多,最后它与 cloudflare 一起工作。 【参考方案1】:

在自签名模式下,您应该:

创建您自己的证书 在Hosting Settings 中将其设置为您的Domain 使用 setWebHook 发送您的证书的 public key file

【讨论】:

以上是关于带有自签名证书的 Telegram bot webhook 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

python Webhook使用自签名证书和Flask(使用python-telegram-bot库)

带有自签名证书的 Amazon Beanstalk Web 服务器?

我可以使用自签名证书在测试环境中部署 microsoft bot

PHP 中的 Telegram Bot 自定义键盘

C# 中的 Telegram Bot 自定义键盘

通过 Windows 中的 OpenSSL 为我的 Android 应用程序创建带有自签名证书的 PKCS#12 文件