0. 背景与场景

  • 小程序要求必须Https。
  • 防中间人劫持,因此需要Https。

    1. 证书申请(推荐使用阿里云免费证书)

  • 在”域名”下面,点击自己已有的域名,然后可以申请免费SSL证书

image.png

2. Flask的Demo样例编写

  • 如果不用443端口而是用其他端口,并且无法访问,请确认安全组是否打开相应端口允许访问 ```python

    coding:utf-8

    from flask import Flask,request

app = Flask(name)

@app.route(“/“) def hello(): return “123a23a”

if name == ‘main‘:

  1. #app = Flask(__name__)
  2. app.config['SERVER_NAME'] ='你的子域名如x.com'
  3. app.run(host='0.0.0.0',port=443,ssl_context=('你的.pem', '你的.key'))
  1. 然后运行下面语句,就可以访问你的域名如https://x.com/了。
  2. ```python
  3. python hello.py

image.png

3. 强制跳转http到https

  • 加入如下代码,即可默认跳转http到https的访问
    1. @app.before_request
    2. def before_request():
    3. if request.url.startswith('http://'):
    4. url = request.url.replace('http://', 'https://', 1)
    5. return redirect(url, code=301)