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

相关推荐
way_hj11 小时前
Flask笔记(2)快速web项目
笔记·flask·vue·web
海盗123412 小时前
微软技术日报——2026-08-07
python·microsoft·flask
weixin_BYSJ198713 小时前
【java项目分享】springboot阅读推荐平台10600
java·javascript·spring boot·python·django·flask·php
Vec‑Jie1 天前
MerchantOps-KBQA 实践(十四):本地运行、性能限制与可验证的交付边界
人工智能·后端·python·flask
mqiqe3 天前
LLM Gateway:企业级大模型应用的“统一控制平面”
平面·flask·gateway
aGdF8E3gQ3 天前
【Application Insights】采样率对Function App日志收集的影响和解决方法
python·flask·wpf
编码者卢布4 天前
【Azure APIM】通过 API Management 公开API为 MCP Server 的试验 (二)
microsoft·flask·azure
编码者卢布4 天前
【Azure APIM】通过 API Management 公开现有 MCP Server 的试验 (一)
microsoft·flask·azure
这个人懒得名字都没写5 天前
Flask + PyArmor Gunicorn启动报错:RuntimeError: unauthorised use of script
python·flask·gunicorn·pyarmor
立心者06 天前
Sdcb Chats .. 发布,彻底移除 Azure.AI.OpenAI 专用包
人工智能·flask·azure