学书才浅 2022-02-21 16:19 采纳率: 60%
浏览 78
已结题

【flask+宝塔】我在云服务器上,想做一个https协议的“https://域名:端口号”这样的网站,最好是在宝塔面板上设置

我想要达到的结果

实现这个页面是为了满足微信小程序api要求:

  • 不能出现ip
  • 必须要是https协议

更详细的问题描述

  • 使用的是flask框架,现在能通过在宝塔上部署一个直接通过 “http://公网ip:端口号" 访问的页面
  • 域名已经解析到公网上,但是通过 ”http://域名:端口号“ 的方式也无法访问页面【会自动转成https协议,威森莫呢❓】

我的思路和尝试过的方法

我有个大概的概念:

  • https和http协议不同所以需要在宝塔(或者flask)上整一个ssl的证书
  • 宝塔上部署flask和直接运行python3 app.py有区别
  • 云服务器教程里说的‘进nginx/conf改配置’和‘【在宝塔界面配置ssl】'应该是两种不同的方法
  • 还有的说什么iis配置什么的,我感觉应该没那么复杂
尝试的方法

搜不同关键词总能出来不同的答案,大概试下来有这么几个感觉希望最大的(但是都失败了)

1.在flask里面直接配置ssl_context

  • 我看到至少两位答主说可以通过ssl_context这个参数解决,但是很遗憾、
  • 我觉得这应该是直接在flask上完成的(也就是跟宝塔面板无关),如果这个方法真的管用,是不是我应该一直保持这个程序在运行状态? 另外,如果我用域名访问它,是不是还要内网穿透什么的

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代码]

一些小问题

  1. 是否需要内网穿透

  2. 为什么http://域名会自动转为https,能不能在宝塔上实现访问http://域名:端口和IP:端口达到同样的效果

以上

  • 写回答

5条回答 默认 最新

  • 在下月亮有何贵干 前端领域优质创作者 2022-02-21 16:29
    关注

    我用nginx,我只知道nginx容易的要死。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 2月21日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么