所以我在我的网站上为我的电报机器人制作了一个小脚本。唯一的问题是,如果我将我的URL设置为机器人的webhook,则会出现SSL错误。
还尝试添加自签名证书,因此has_custom_certificate变为true,但出现了同样的错误。
我做错了什么?
答案 0 :(得分:0)
您必须创建一个自签名证书,才能通过https部署服务器。如果您使用的是烧瓶,则可以按照此不错的教程-https://blog.miguelgrinberg.com/post/running-your-flask-application-over-https
答案 1 :(得分:0)
问题出在您的证书上。
您的getWebHookInfo中的错误:
"last_error_message":"SSL error {337047686, error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed}"
电报是说它需要整个证书链(也称为CA Bundle或全链证书)。
您可以使用SSL Labs SSL Server Test服务来检查您的证书:
只需像以下示例一样传递您的网址,将coderade.github.io
替换为主机:
https://www.ssllabs.com/ssltest/analyze.html?d=coderade.github.io&hideResults=on&latest
如果看到“链问:未完成” ,则表示您没有提供完整的链式证书。
您需要添加所有三个必需的文件(.key,.crt和.ca-bundle)。 Namecheap很好地记录了如何以许多不同的方式在您的站点中安装ssl证书,例如Apache,Node.js,Nginx等。请检查您是否可以遵循以下可用方法之一:{{3} }
无论如何,您需要为SSL证书提供商下载完整的链式证书,并将其安装在Web服务器上。
我不知道您使用的是哪种服务,但是以Namecheap - How to Install SSL certificates为例,我解决了将SSL证书提供者发送的gunicorn与ca-bundle
文件一起添加的问题(对于我来说ca-certs)在我的SSL配置上,例如以下示例:
ca_certs = "cert/my-service.ca-bundle"
有关更多信息:Namecheap Comodo对此@martini和thread帖子的回答。