Ssl 为电报Webhook创建和使用自签名证书的简单方法是什么?
系统信息:Ssl 为电报Webhook创建和使用自签名证书的简单方法是什么?,ssl,webhooks,telegram,self-signed,Ssl,Webhooks,Telegram,Self Signed,系统信息: Server Win Server 2012 Web Server: IIS 8.5 Project platform: ASP.NET MVC Webhook Path: https://webhook.MYDOMAIN.com/api/webhookaction // I use my domain name instead of MYDOMAIN 我使用以下方法创建了一个自签名证书,用于电报Webhook,但最后电报将SSL错误返回给我,你知道更容易成功的方法吗? A)
Server Win Server 2012
Web Server: IIS 8.5
Project platform: ASP.NET MVC
Webhook Path: https://webhook.MYDOMAIN.com/api/webhookaction
// I use my domain name instead of MYDOMAIN
我使用以下方法创建了一个自签名证书,用于电报Webhook,但最后电报将SSL错误返回给我,你知道更容易成功的方法吗?
A) 我通过以下
OpenSSL
命令而不是通配符SSL创建了一个自签名证书
openssl req -newkey rsa:2048 -sha256 -nodes -keyout MyDomain_private_key.key -x509 -days 365 -out MyDomain_public.pem -subj "/C=US/ST=New York/L=MyDomain/O=MyDomain/CN=webhook.MyDomain.com"
B)
然后,我通过以下命令从输出文件创建了一个PFX
:
openssl pkcs12 -export -out MyDomain.pfx -inkey MyDomain_private.key -in MyDomain_public.pem -certfile MyDomain_public.pem
C)
然后我在服务器上安装了MyDomain.pfx
,并将其绑定到Https://webhook.mydomain.com
D)
我还使用SetWebhook
命令中的MyDomain\u public.pem
文件作为认证文件(使用第三个库和Curl
命令)
Curl
命令:
curl -F "url=https://webhook.MyDomain.com/api/Webhookaction/" -F "certificate=C:\path\mydomain_public.pem" https://api.telegram.org/bot[TOKEN]/setWebhook
但是当我调用GetWebhookInfo
API命令时,它返回以下错误:
{
"ok":true,
"result":{
"url":"https://api.telegram.org/bot[token]/setWebhook?url=https://webhook.mydomain.com/api/webhookaction/",
"has_custom_certificate":true,
"pending_update_count":1,
"last_error_date":1489126755,
"last_error_message":"SSL error {336134278, error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed}",
"max_connections":40
}
}
我使用这种快速简便的方法为Telegram设置自签名Webhook(在Windows上,但也适用于其他操作系统)
{"ok":true,"result":true,"description":"Webhook was set"}
{
好的,没错,
结果:{
url:“[服务器名称或IP]:[端口]/[您的机器人令牌]”,
拥有自定义证书:正确,
挂起的\u更新\u计数:0,
最大连接数:30
}
}
谢谢你,我会测试它并尽快回复你。亲爱的@Charles,非常感谢,我用我的域和一个端口以及你的脚本来设置Webhook,最后它运行得很好:)。另外,我还有一个问题:您知道它是否可以与没有端口的子域(例如
webhook.mydomain.com
)而不是具有端口的域(例如mydomain.com:8443
)一起工作吗?是的,这是可能的。由于它是https,默认情况下端口是443,因此在设置Webhook时,还可以指定端口443