使用 Thin rack ruby​​ 服务器的 SSL 证书/HTTPS 问题

标签 ssl https ssl-certificate thin webhooks

我在使用 Thin rack Ruby 服务器 ( https://github.com/macournoyer/thin ) 接收 HTTPS webhooks 时遇到了一些问题。

也许这不完全是与 Thin 相关的问题,而是与 SSL 证书配置相关的问题。

我想管理传入的 HTTPS 连接(webhooks:Telegram.org 服务器调用我的 Thin (sinatra/rack) 应用程序,通过 webhooks 发送消息更新)

第 1 步。我创建了一个 SSL KEY 和 PEM 文件自签名证书,如下所述: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=Example Brooklyn Company/CN=YOURDOMAIN.EXAMPLE"

第 2 步。我调用 Telegram Server Bot API 以在指定的 HTTPS 主机/路径接收 webhook,如下所述:https://core.telegram.org/bots/api#setwebhook API端点返回成功。

第 3 步。我使用这些参数运行 Thin:

bundle exec thin start --ssl --ssl-key-file ~/.ssl/YOURPRIVATE.key --ssl-cert-file ~/.ssl/YOURPUBLIC.pem --rackup /myhome/handyBOTS/rackup/handler.ru --address xxx.xxx.xxx.xxx      --port 8443  --environment production
Thin web server (v1.6.4 codename Gob Bluth)
...
...
...

我在运行时遇到了麻烦: 我看到 Telegram 远程服务器调用 Thin 服务器 webhook,但 Thin 提示简洁:

<SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp><SSL_incomp>

所以我确信瘦服务器会收到来自远程 Telegram 服务器的调用,但它不会处理请求。 我认为这是一些 SSL 配置不一致。

有什么想法吗?

我的具体问题是:

Thin 期望的 CRT 文件格式是什么?

使用此命令行参数 --ssl-cert-file ~/.ssl/YOURPUBLIC.pem 传递给 Thin PEM 文件是否正确?

更新: 该问题可能与 Thin 无关,但与某些证书链/捆绑配置有关,另请参阅: Telegram Bot API Webhooks Self-signed Certificate issue

谢谢

乔吉奥

最佳答案

[已解决]

建立证书是我的错。详情:

https://github.com/solyaris/BOTServer/blob/master/wiki/usage.md#step-4-create-self-signed-certificate

我不再测试瘦 SSL 配置(我必须测试),因为我决定最好将 SSL/防火墙/代理工作留给 NGINX,使用瘦实例作为工作人员:

https://github.com/solyaris/BOTServer/blob/master/wiki/nginx.md

关于使用 Thin rack ruby​​ 服务器的 SSL 证书/HTTPS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33856661/

相关文章:

.htaccess - htaccess 2变量问题

php - curl 错误 : "sslv3 alert unexpected message"

iOS Mutual Auth 验证成功然后连接请求失败

node.js - 在 Node 和 Nginx 中终止 SSL/TLS 的位置

ajax - 从 HTTP 和 HTTPS 页面发布对 http url 的 AJAX 调用

ruby-on-rails - 工头、Rails、Puma SSL/HTTPS

java - java - 如何使用java keystore而不是证书和 key 文件在java中使用ssl实例化grpc服务器?

java - Android HTTPS 请求?

java - SSL 错误证书错误

java - 在 Android 中使用 SSL 证书