你的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非常普遍,不安全别的网站都懒得搭理你。

相关推荐
兵慌码乱1 天前
请销假管理系统的分层架构设计与核心模块实现
flask·sqlalchemy·python web·apscheduler·web 系统架构·假期管理系统·审批工作流
TechWayfarer10 天前
苏超赛事网站安全防护:WAF、DDoS与仿冒页面如何联动治理
网络·python·安全·flask·ddos
vortex510 天前
新手前后端开发学习指南:从Flask框架到全栈实践
后端·python·flask
叫我:松哥11 天前
基于Python flask的中学可控智能命题系统设计与实现,整合遗传算法、DeepSeek 大模型及数据库技术构建一体化应用
数据库·人工智能·python·算法·机器学习·flask·遗传算法
chushiyunen11 天前
langchain4j笔记、tools
笔记·python·flask
叫我:松哥11 天前
基于机器学习的中文文本抑郁症风险检测系统,包括NLP与传统机器学习的抑郁症识别,准确率92%
人工智能·深度学习·机器学习·自然语言处理·flask·nlp·bootstrap
TechWayfarer11 天前
查IP归属地接入实战:保险理赔如何做动态风险监控与预警
网络·python·tcp/ip·安全·flask
2601_9618752411 天前
花生十三资源盘|电子版|全科
python·django·flask·virtualenv·scikit-learn·pygame·tornado
叫我:松哥11 天前
基于Flask的在线考试刷题系统设计与实现,集智能练习、过程追踪、深度分析与个性化引导
数据库·人工智能·后端·python·flask·boostrap
abcy07121313 天前
flask hdfs 异步上传图文教程csdn
python·flask