如何使用经过验证的证书来设置电报机器人Webhook?

问题描述 投票:1回答:2

我已经验证了ssl证书(在购买托管时获得)。它由四部分组成:1。私钥,2。证书,3。根证书,4。中间证书。我制作了两个文件.key(私有),。crt(证书,中间,root)和confugure nginx。一切都很好,我的域名显示https,而https://www.sslshopper.com说它有效。但是当我设置电报僵尸网络时

def start_request():
    url = 'https://api.telegram.org/bot{token}/{method}'.format(
        token = 'myToken',
        method = 'setWebhook'
    )
    data = {
        'url' : 'MyDomain',
        'certificate' : open('myCertificate', 'r')
    }
    r = requests.post(url, data = data)

webhook状态总是如此

结果 url“myDomain”has_custom_certificate false pending_update_count 5 last_error_date 1515041749 last_error_message“来自webhook的错误回复:403 Forbidden”

和nginx日志说149.154.167.214 - - [04 / Jan / 2018:07:07:00 +0300]“POST myDomain”403 997“ - ”“ - ”

证书有问题吗?证书或证书的一部分以及我应该以什么格式发送电报?

ssl nginx bots telegram
2个回答
0
投票

我认为setWebhook是成功的。您可以使用this Android application来确定。

Awesome Telegram Bot

顺便说一句,你可以参考this guide,使用curl来调试自己。


0
投票

在我的情况下,我采取根证书(只有root)并将其转换为.der和.pem,

openssl x509 -in root.crt -outform der -out root.der
openssl x509 -in root.der -inform der -outform pem -out root.pem

之后,我使用root.pem证书设置了带有“Awesome Telegram Bot”android应用程序的webhook。我使用getWebhookInfo方法

url "https://myDomain"
has_custom_certificate  true
© www.soinside.com 2019 - 2024. All rights reserved.