如果直接用Python+Flask,提供REST API的服務,只會開啟http://127.0.0.1:5000的Daemon給別人呼叫,但現在流行用HTTPS,很多Webhook功能都強迫你要能提供HTTPS的通訊協定給它呼叫,故我上網查怎麼讓Flask支援SSL。
只要在你的app.run()裡,加上 ssl_context ='adhoc' 就可以了,如下列Python程式片段:
if __name__ == "__main__":
app.run(
host = '0.0.0.0',
port = 55373,
debug = True,
ssl_context ='adhoc'
)
上述用到adhoc功能,需要pyOpenSSL套件。但你如果有申請SSL憑證,就不需要這個套件。
有些Client要求你一定要用合法的憑證,否則就不連,甚至連用Postman測試HTTPS的API,也要求這樣,否則不幫你測(或到setting裡把SSL certificate verification)。
若你有合法的憑證,把ssl_context 改成下列參數就能用:
ssl_context =('/PATH/TO/SSL.CRT','/PATH/TO/SSL.KEY')
沒有留言:
張貼留言