你的flask服务开启https了吗?

一、你的flask服务开启https了吗?

1.事件起因

计划做文心一言插件,我购买了服务器,开始按照我的想象部署插件,结果工作不错,但是最后一步图片显示不正常。哭晕了,如下图所示。

仔细阅读,发现返回图片地址什么的都很正常啊,也可以访问得到,但是为什么就不能看到呢,很奇怪。

经多方排查,最终确定是图片跨域导致无法显示。

2.解决思路

知道是跨域问题就好了,因为文心一言是https访问,所以提供服务的也需要https,那么就开始作了(解决)。

二、解决办法

1.无效1.0解决办法

知道要https那我就加https了,直接百度解决办法。

  • Flask(更具体地说其实是Werkzeug ),支持使用即时证书,这对于通过HTTPS快速提供应用程序非常有用,而且不会搞乱系统的证书。你只有需要做的就是将 ssl_context ='adhoc' 添加到程序的 app.run() 调用中。遗憾的是,Flask CLI无法使用此选项。举个例子,下面是官方文档中的"Hello,World" Flask应用程序,并添加了TLS加密:
  • 安装库 pip install pyopenssl
python 复制代码
from flask import Flask
app = Flask(__name__)
 
@app.route("/")
def hello():
    return "Hello World!"
 
if __name__ == "__main__":
    app.run(ssl_context='adhoc')

这样启动起来就是https了,但是访问问题依旧,图片仍然没有显示。。。。。。仔细看来浏览器说是假的ssl,那就继续解决。

2.无效2.0自签名证书解决办法

所谓的自签名证书是使用与同一证书关联的私钥生成签名的证书,就是自己动手丰衣足食。

  • 生成证书
  • flask加载证书
bash 复制代码
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
python 复制代码
from flask import Flask
app = Flask(__name__)
 
@app.route("/")
def hello():
    return "Hello World!"
 
if __name__ == "__main__":
    app.run(ssl_context=('cert.pem', 'key.pem'))
复制代码

然后看结果,依然无效,因为是自签名。。。。。。

3.0终极解决办法

后来发现要真正的证书,那么你必须要有域名,才会发给你,就是说证书和域名是绑定的,就跟户籍一样,户籍都没有说什么学区房,没人理你。

  • 为此我花了8块买了一个cn一年的域名,并且进行了实名。
  • 在腾讯云申请ssl证书,参考地址 cloud.tencent.com/document/pr...
  • 申请地址 console.cloud.tencent.com/ssl 申请时必须先证明该证书属于你,需要按提示加入cname,进行验证。申请完毕略等一会就会通过,下载证书即可,具体包含以下几个问题件:
  • 加载证书 因为有4个文件,没有详细写,因此我测试了几次,最终成功。
python 复制代码
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', ssl_context=( 'erniebotplugins.cn_bundle.crt','erniebotplugins.cn.key'), port=8081)

三、最终效果

用上最终大招后,最终成功,具体效果如下。

可见现在ssl非常普遍,不安全别的网站都懒得搭理你。

相关推荐
龙腾AI白云20 小时前
大模型在天文科研中的应用:天体数据分析
大数据·flask·逻辑回归·pygame
百锦再1 天前
使用JavaScript获取和解析页面内容的完整指南
开发语言·前端·javascript·python·flask·fastapi
Ares-Wang1 天前
flask》》多线程并发数据安全问题 threading.local werkzeug.local.Local
后端·python·flask
XY_墨莲伊2 天前
【实战项目】基于B/S结构Flask+Folium技术的出租车轨迹可视化分析系统(文末含完整源代码)
开发语言·后端·python·算法·机器学习·flask
Leinwin2 天前
GPT-6 API接入完全指南:Symphony架构下的多模态调用与最佳实践
后端·python·flask
Ares-Wang2 天前
flask》》Blueprint 蓝图
后端·python·flask
ZC跨境爬虫3 天前
海南大学交友平台登录页开发实战day6(覆写接口+Flask 本地链接正常访问)
前端·后端·python·flask·html
花间相见3 天前
【AI私人家庭医生day01】—— 项目介绍
大数据·linux·人工智能·python·flask·conda·ai编程
hqyjzsb3 天前
传统教师升级AI教育产品设计师后收入增长路径
人工智能·职场和发展·aigc·文心一言·学习方法·业界资讯·ai写作
Ares-Wang3 天前
flask 路由 add_url_rule 、@app.route app.test_request_context() 类视图
后端·python·flask