主要步骤
- 第一步:生成服务器保管的私钥和发给客户端的证书(公钥)
- 第二笔:配置Flask开启ssl访问模式
生成私钥和证书
这种要简单一些,比《openssl生成自签名证书(完整版)》那种生成自签名的方法。
1.生成网站私钥(server.key)
# 生成1024位的密钥
openssl> genrsa -des3 -out server.key 1024 # 要输入密码123456
# 去除私钥的密码,不然启动网站时要喊输入一道
openssl> rsa -in server.key -out server.key
2.生成证书签名请求(server.csr)
openssl> req -new -key server.key -out server.csr
# 需要输入一堆注册信息,可以都不填一路回车
3.生成证书(server.crt)
# 有效期设为3年
openssl> x509 -days 1095 -req -in server.csr -signkey server.key -out server.crt
配置Flask以开启ssl访问
- 要把
server.crt
和server.key
上传到网站目录里去 - 修改flask启动部分的参数, 添加私钥和证书文件
# 配置ssl证书文件文件
ssl_keys = ('sslkey/server.crt', 'sslkey/server.key')
# 修改启动参数,增加 ssl_context=ssl_keys 即可
app.run(debug='True', port='8080', host='0.0.0.0', ssl_context=ssl_keys)
- Flask启用ssl后,就必须用
https://
访问了,浏览器还会提示证书未经认证不安全, 确认是否要继续访问 - 不能用两个
app.run()
来启动一个https
协议和一个http
协议, 因为第一次运行.run()
了以后再运行一次就会提示内存地址已经被使用
网友评论