你的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 小时前
creating-custom-commands-in-flask
后端·python·flask
矩阵猫咪1 小时前
create-a-weather-app-using-flask-python
后端·python·flask
矩阵猫咪3 小时前
basic-validation-using-flask-gladiator-module-in-python
后端·python·flask
矩阵猫咪3 小时前
covid-vaccine-availability-using-flask-server
后端·python·flask
星尘安全1 天前
Azure Airflow 中配置错误可能会使整个集群受到攻击
microsoft·网络安全·flask·azure·云安全
檀越剑指大厂1 天前
【Python系列】Flask 与 FastAPI:两个 Python Web 框架的对比分析
python·flask·fastapi
北愚1 天前
基于feapder爬虫与flask前后端框架的天气数据可视化大屏
爬虫·信息可视化·flask
王二空间2 天前
使用flask-caching扩展心得
后端·python·flask
web151173602232 天前
FastAPI vs Flask 专业对比与选择
python·flask·fastapi
工业互联网专业2 天前
Python大数据可视化:基于大数据技术的共享单车数据分析与辅助管理系统_flask+hadoop+spider
大数据·hadoop·python·flask·毕业设计·源码·spider