LinMinquan's Blog

Experience technology to change life

Python Flask 支持 https Let’s Encrypt

有个小的用Flask写的Python程序需要支持https,证书用免费的Let’s Encrypt,在sslforfree.com上输入域名,获得证书。验证域名我用的是在vps上简单搭个ngnix来上传文件验证。

web server用的是Flask的werkzeug内置的server,配置ssl参考下面的链接

https://stackoverflow.com/questions/28579142/attributeerror-context-object-has-no-attribute-wrap-socket/28590266#28590266

http://werkzeug.pocoo.org/docs/0.12/serving/

只需要多加两行代码即可

if __name__ == "__main__":
    context = ('cert.crt', 'key.key')
    app.run(host='0.0.0.0', port=80, ssl_context=context, threaded=True, debug=True)

sslforfree中申请后下载得到的压缩包中包含certificate.crt,private.key,ca_bundle.crt。

怎么判断是否我们的Python程序的证书是否有效呢?

可以用chrome 60版本来判断。下面链接教怎么在cheome 60中查看证书。

https://www.ghacks.net/2017/07/27/configure-google-chrome-to-display-certificates-directly/

这样就可以在chrome中访问某个get接口,

然后就可以查看证书的信息了。

TIM 20170803181043

TIM 20170803181133

 


Share