本次主要是记述使用https去访问Flask后端接口。最初的时候仅仅使用普通的Flask部署后端,只能实现IP+port的简单访问,但是对应https访问以及使用域名访问都不能够实现,于是在网上寻找解决办法,现在记下,为以后方便翻阅。
(留有笔记使用,新手上路,请多关照。😊)
1 正常的Flask项目
1.1 例程
# pip install Flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
# 如果是在服务器端运行,建议还是加上Ip
# app.run(host = '10.0.24.11') # 这里的10.0.24.11是购买的服务器的内外IP,可以通过公网IP+端口访问
1.2 运行以及测试
能够使用IP+port,但是域名+port不行
2 使用SSL后的Flask项目
2.1 例程
这里的liuserver.top_nginx是SSL证书存在的文件夹,需要以.crt(好像.pem也行)和.key为后缀的文件(注意传入顺序不要反,先.crt后.key):
ssl_context = ("liuserver.top_nginx/liuserver.top_bundle.crt", "liuserver.top_nginx/liuserver.top.key") # 不要反,传入顺序反了,就回出现错误。
'''
使用之前需要安装pyOpenSSL:
pip install pyOpenSSL
'''
# pip install Flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(ssl_context = ("liuserver.top_nginx/liuserver.top_bundle.crt", "liuserver.top_nginx/liuserver.top.key"))
# 如果是在服务器端运行,建议还是加上Ip
# 这里的10.0.24.11是购买的服务器的内网IP,可以通过公网IP+端口访问
# app.run(host = '10.0.24.11', ssl_context = ("liuserver.top_nginx/liuserver.top_bundle.crt", "liuserver.top_nginx/liuserver.top.key"))
2.2 运行和测试
能使用域名访问(https://域名:port),但是此时无法使用IP+port访问。