OpenSSL 上的电报机器人

Telegram bot on OpenSSL

我对 https://core.telegram.org/bots 有疑问。

  1. 从 BotFather 获取令牌。
  2. 创建自签名 ssl 证书 (https://core.telegram.org/bots/self-signed):

    openssl req -newkey rsa:2048 -sha256 -nodes -keyout YOURPRIVATE.key -x509 -days 365 -out YOURPUBLIC.pem -subj "/C=US/ST=New York/L=Brooklyn/O=布鲁克林示例 Company/CN=YOURDOMAIN.EXAMPLE"

  3. 运行 服务器:

    openssl s_server -accept 88 -key YOURPRIVATE.key -cert YOURPUBLIC.pem

  4. 发送挂钩:

    curl -F "url=https://URL:88/bot" -F "certificate=@YOURPUBLIC.pem" https://api.telegram.org/botTOKEN/setWebhook

答案:

{"ok":true,"result":true,"description":"Webhook was set"}
  1. 电报连接到我的服务器。错误:

    139690177754952:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 警报证书 unknown:s3_pkt.c:1257:SSL 警报编号 46

  2. 测试:

    openssl s_client-连接URL:88

好的。没问题。

如何:

  1. 运行 openssl s_client ... 作为电报。使用 -cert YOURPUBLIC.pem 无效。
  2. 解决这个问题并接收数据。

需要设置真实服务器名来认证CN,等于URL(4).