实现这个页面是为了满足微信小程序api要求:
- 不能出现ip
- 必须要是https协议
我有个大概的概念:
- https和http协议不同所以需要在宝塔(或者flask)上整一个ssl的证书
- 宝塔上部署flask和直接运行python3 app.py有区别
搜不同关键词总能出来不同的答案,大概试下来有这么几个感觉希望最大的(但是都失败了)
1.在flask里面直接配置ssl_context
app.run(debug=True, host='0.0.0.0', ssl_context=('your_ssl.pem', 'your_ssl.key'))
2.python+flask子域名访问设置
在方法1的基础上,加上了:
通过”给子域名添加DNS解析 + 子域名ssl证书申请+代码修改“的方法
#coding:utf8
#创建一个子域名
from flask import Blueprint
api = Blueprint('api',__name__,subdomain='api')
# attention1: 原来是app.route('/')
@api.route('/')
def index():
return u'这个是api的首页'
@api.route("/login/")
def login():
return u'我是登录页面'
if __name__="__main__":
app = Flask(__name__)
# attention2:你的以及域名,比如bbaidu.com
app.config['SERVER_NAME'] ='bbaidu.com'
app.run('0.0.0.0', debug=True, port=8100, ssl_context=('your_path/XXXX.pem', 'your_path/XXXX.key'))
[参考博主dyingstraw代码]
是否需要内网穿透
为什么http://域名会自动转为https,能不能在宝塔上实现访问http://域名:端口和IP:端口达到同样的效果
以上
我用nginx,我只知道nginx容易的要死。
参考一下:https://www.feiniaomy.com/post/159.html
首先要实现https你的方向没错就是先申请ssl证书,其次是否有重新部署上去证书,由于用的flask+宝塔,那你需要检查环境是否设置完整,以及考虑域名的生效时间,解析有没有问题
强制HTTPS不就行了,申请一个免费的HTTPS证书开起来就行
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!