Telegram Bot API Webhooks 自签名证书问题

2023-11-25

我正在开发一个 Ruby 语言服务器来管理多个 Telegram 机器人设置网络钩子

顺便说一句,我将在以下位置将服务器作为开源交付:BOT服务器

PROBLEM

我在从 Telegram Bot API 服务器接收 webhook 更新时遇到问题。我已经设置了一个 webhook 令牌(电报回复“成功”),但我没有收到有关成功配置的 webhook 的任何更新。

我认为问题可能出在自签名证书谜团。见旧红迪网问题和答案。

我有类似的问题,我公平地说,问题在于发送 HTTPs webhooks 更新的 Telegram Bot API 服务器和接收 webhooks 的 bot 服务器之间存在一些“误解”(我使用 nginx 作为代理/https SSL 证书处理程序)。

似乎有人解决了使用证书“链”配置 nginx 的问题;我对证书技巧非常无知,所以我问:

QUESTION

也许有人可以发布信息,通过详细设置/一步步为傻瓜配置 nginx(任何 ssl Web 服务器!),展示如何从此处描述的 .key 和 .pem 文件传递​​:https://core.telegram.org/bots/self-signed to 设置证书“链”在 nginx 配置中配置,被 Telegram Bot API 服务器“接受”?

顺便说一句,我现在的 nginx 配置:

upstream backend {
  server 127.0.0.1:3000;
}

#
# HTTPS server
#
server {
  listen 8443 ssl;
  server_name myhost.com;

  ssl on;
  ssl_certificate /mypath/ssl/PUBLIC.pem;
  ssl_certificate_key /mypath/ssl/PRIVATE.key;

  ssl_session_timeout 5m;

  ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
  ssl_prefer_server_ciphers on;

  location @backend {
    proxy_pass http://backend;
  }

  location / {
    try_files $uri @backend;
  }
}

其中 PRIVATE.key + PUBLIC.pem 文件是按照以下准则生成的:使用自签名证书:

openssl req -newkey rsa:2048 -sha256 -nodes -keyout PRIVATE.key -x509 -days 365 -out PUBLIC.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=YOURDOMAIN.EXAMPLE"

thanks

giorgio


我自己回答,分享在这里找到的解决方案:https://stackoverflow.com/a/33260827/1786393

重点不是提到的 nginx 配置,而是 PEM 文件:

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=Example Brooklyn Company/CN=YOURDOMAIN.EXAMPLE"

您的域名.示例openssl 的主题字符串中必须是真实主机名接收 webhook 的服务器的名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Telegram Bot API Webhooks 自签名证书问题 的相关文章

随机推荐

  • 如何在 jaxws 中使用 wsimport 生成 equals() 和 hashcode() 方法

    使用我的 WSDL 生成的类wsimport没有equals and hashcode 方法 我如何自定义并生成客户端类以获得equals and hashcode 方法 我不确定是否使用 JAXB 来实现此目的 在 Axis2 0 生成的
  • 如何使用 Newtonsoft 反序列化可以是数组或字典的对象?

    我正在使用一个 API 它返回一个我需要反序列化的 json 对象 我的问题是这些对象的成员之一有时是一个空数组 有时是一个字典 1 2 我想将其反序列化为数组或字典 因为我不关心 ID 我只想要所有对象的列表 这是我反序列化对象的方法 v
  • new然后delete后的内存消耗

    我创建了一个如下所示的示例应用程序 我需要创建 1024 1024 结构 在致电之前new我的应用程序正在消耗一定量的内存 比如 0 3mb 调用 new 运算符后 内存会增加 例如 175mb 拨打电话后delete操作员内存减少 例如
  • 带有上下文路径的 Spring Boot 静态内容

    使用上下文路径时 我在 Spring Boot 中遇到静态内容问题 即 我希望将我的应用程序部署到localhost 8080 appname 当我在没有上下文路径的情况下运行应用程序时 一切正常 Spring Boot 找到并运行我的 h
  • 在 PHP 中的对象上使用 json_encode(无论范围如何)

    我正在尝试将对象列表输出为 json 并且想知道是否有办法使对象可用于json encode 我得到的代码看起来像 related user gt getRelatedUsers echo json encode related 现在 我只
  • 重写静态 iOS 库中的符号

    我正在开发一个链接多个静态库的 iOS 应用程序 挑战在于 这些链接库定义了具有不同实现的相同方法名称 奇怪的是 我没有得到任何duplicate symbol definition错误 但是 毫不奇怪 我最终只能访问该方法的一种实现 更清
  • rake db:create 生成“如果您手动设置字符集,请确保您有匹配的排序规则”错误

    我有一个2 3 8版本的rails项目 当我尝试运行 rake db create 时 出现以下错误 Couldn t create database for encoding gt utf8 username gt root adapte
  • 访问令牌中未包含 Azure AD v2 角色

    我在用着https login microsoftonline com oauth2 v2 0 token使用以下范围对 azure Ad 进行身份验证 authorization code grant offline access ope
  • 使用字符串作为锁对象可以吗?

    我需要基于一组有限的字符串在一个区域中创建一个关键部分 我希望为同一个字符串实例共享锁 有点类似于字符串实习生方法 我正在考虑以下实施 public class Foo private readonly string s private s
  • 手动更新休眠版本

    我有两个类 例如 Foo 和 Bar 使用 Hibernate 3 6 1 Final 和 JPA 2 0 映射为 OneToOne 双向 例如 Entity public class Foo Id private Long id OneT
  • Swift:弹出窗口关闭回调

    那里有两个UIViewController类在我的故事板中 主视图控制器 and 第二个视图控制器 我要展示第二个视图控制器当用户点击名为的按钮时作为弹出窗口显示弹出窗口 MainViewController override func p
  • 什么是 C# 独占或“^”用法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 谁能用一个很好的例子来解释
  • 编译器在优化代码时在汇编中做了什么?即-O2标志

    因此 当您在编译 C 时添加优化标志时 它的运行速度会更快 但是这是如何工作的呢 有人能解释一下大会上到底发生了什么吗 这意味着您要让编译器在编译时执行额外的工作 分析 这样您就可以在运行时获得一些额外宝贵的 CPU 周期的回报 可能最好用
  • 为什么 Ruby 不使用 Symbol#=~ (正则表达式匹配运算符)?

    在对符号执行正则表达式匹配时 Ruby 不会自动对符号进行字符串化 当您有包含符号的变量并且您忘记在尝试正则表达式匹配之前需要对它们调用 to s 时 这很容易做到 gt gt this gt false gt gt this this g
  • 使用 Selenium 和 Python 将表数据提取到 pandas 数据框中

    所以我使用库 BeautifulSoup 从表中提取数据 代码如下 if soup find table class a keyvalue prodDetTable is not None table parse table soup fi
  • Rust 中是否可以实现递归闭包?

    这是一个非常简单的例子 但我将如何做类似的事情 let fact x u32 match x 0 gt 1 gt x fact x 1 我知道这个具体的例子可以通过迭代轻松完成 但我想知道是否可以在 Rust 中为更复杂的事情 例如遍历树
  • 将 JSON 序列化为查询字符串的标准化方法?

    我正在努力建立一个宁静的环境API我正在努力研究如何序列化JSON数据到一个HTTP query string 请求中需要传递许多强制和可选参数 例如 下面表示为 JSON 对象 columns name column where or c
  • 在python 3中解码base64字符串(是否使用lxml)

    我知道这看起来非常简单 我想问题是我对这一切没有清楚的了解字节 str unicode and 编码 解码 坦白地说 东西还没有 我一直在尝试让我的工作代码在 Python 3 上运行 我遇到的问题是当我使用以下命令解析 XML 时lxml
  • 在引用表达式中使用 data.table 的 .() 快捷方式

    我有一些 data tables 包含文件名作为名为的 varfn 我想分开基本名称和扩展名 library data table library tools DT1 data table fn c gah csv egad csv DT2
  • Telegram Bot API Webhooks 自签名证书问题

    我正在开发一个 Ruby 语言服务器来管理多个 Telegram 机器人设置网络钩子 顺便说一句 我将在以下位置将服务器作为开源交付 BOT服务器 PROBLEM 我在从 Telegram Bot API 服务器接收 webhook 更新时