Telegram bot api和Webhook with SSL

时间:2016-05-09 20:10:23

标签: python ssl tornado telegram-bot python-telegram-bot

我用ssl_options创建简单的龙卷风http服务器并为Telegram bot设置web hook,但是服务器没有得到“post”请求。可能有什么问题?

import tornado.httpserver
import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def post(self):
        print('Post request')

    def get(self):
        print('Get request')
        self.write('<h1>Hello, World</h1>')

application = tornado.web.Application([
    (r'/', MainHandler)
])

if __name__ == '__main__':
    http_server = tornado.httpserver.HTTPServer(application, ssl_options={
        'certfile': 'server.crt',
        'keyfile': 'server.key'
    })
    http_server.listen(443)
    tornado.ioloop.IOLoop.current().start()

1 个答案:

答案 0 :(得分:2)

发出自签名SSL证书时,请确保“通用名称”与您的FQDN(hostname -f)匹配。

示例:

$ openssl req -new -x509 -nodes -newkey rsa:1024 -keyout server.key -out server.crt -days 3650

如果您使用的是python-telegram-bt,则可以测试SSL握手运行this脚本并尝试使用wget进行连接:

$ wget -O /dev/null https://$HOST:$PORT/