2020年1月30日 星期四

Flask+HTTPS

如果直接用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')

沒有留言:

張貼留言

IKEA吊櫃廚櫃

 好不容易裝好IKEA買來的吊櫃,花了三天。 從組裝,鑽牆,上牆調水平,累死我了。