0

我有一个带有可信 SSL 证书版本 3 的网站。我从 SSL 颁发者那里获得了 4 个文件,其中一个是放在服务器上的域证书。

要为我的机器人设置 webhook,我尝试过:

  1. URL模式下的简单setWebhook方法:

    https://api.telegram.org/bot447278997:*******************************nZW0/setWebhook?url=https://example.com/webhookMethod
    
  2. setWebhook使用卷曲。我已经上传了来自证书颁发者的 4 个文件中的每一个,以及一个包含所有 4 个随机顺序文件的文件。(curl 命令将我的证书识别为自签名证书并返回 SSL(60) 错误,因此我必须--insecure在命令中添加一个词以忽略证书的验证并发送它)。这是命令:

    curl --insecure -F "url=https://example.com/webhookMethod" -F "certificate=@cert.pem" https://api.telegram.org/bot447278997:****************************nZW0/setWebhook
    

上述方法都没有使我的 webhook 工作。调用getWebhookInfo方法,我每次都收到一个错误,例如:

{
  "ok":true,
  "result":{
    "url":"https://example.com/webhookMethod",
    "has_custom_certificate":true,
    "pending_update_count":7,
    "last_error_date":1518169667,
    "last_error_message":"Wrong response from the webhook: 302 Found",
    "max_connections":40
  }
}

在某些尝试中has_custom_certificate变成Falselast_error_message更改为类似not verified certificateorSSL error等​​。

此外,我已经使用具有 SSL 验证的 Postman 测试了我的 Web 服务,并且一切都已设置并正常工作。我也知道 Telegram 不支持 SSL 版本 2 和 3,但支持自签名证书。现在我正在向他们发送经过验证的第 3 版证书,它应该可以工作,对吧?

提前感谢任何帮助。

4

1 回答 1

0

它不是 ssl 问题。您应该在响应中返回 200 而不是 302。据我所知,302 表示重定向。不要在响应消息中重定向。

于 2018-02-12T06:26:07.490 回答