前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >宝塔反代面板端口+开启HTTPS后无法绑定堡塔APP

宝塔反代面板端口+开启HTTPS后无法绑定堡塔APP

作者头像
kr
发布2022-11-12 13:36:40
7.3K0
发布2022-11-12 13:36:40
举报
文章被收录于专栏:个人教程

情况

版本
  • 宝塔面板版本:Linux面板7.9.49 测试版
  • 手机堡塔APP版本:3.8.2
  • 面板堡塔APP插件版本:1.1
面板访问设置

腾讯防火墙关闭8888端口。 新建一个网站,开启反代,反代到http://127.0.0.1:8888。 网站开启SSL,强制HTTPS访问。 通过这个网站访问宝塔面板。

好处

  • 不需要输端口号,更美观。
  • 不怕被人扫端口,进一步隐藏面板特征(开启了API接口后,即使设置了未认证响应状态,访问API接口一样会相应,不管密钥正确与否)
  • 不知道域名和安全入口无法访问。
  • 即使域名出了问题,只要在腾讯面板开放8888端口就能访问面板,不需要登录SSH重置。

问题、溯因和解决方法

问题

安装堡塔APP插件后,手机扫码无法绑定服务器。

查找问题原因
堡塔APP插件页
堡塔APP插件页

通过解码绑定二维码,得到一串Base64编码的字符串:

代码语言:javascript
复制
aHR0cCUzQS8vd3d3LmV4YW1wbGUuY29tJTdDMDdIdUo3NUZUbkk5b2Y0d3M5TzBIbkJWQ1JwdUY1MG4lN0M2NDlsNUxvaU42NEZWQ0RFMmQlN0NBS29KYkc1NkZsOWZSN2h2RVU=

通过Base64解码后:

代码语言:javascript
复制
http://www.example.com|07HuJ75FTnI9of4ws9O0HnBVCRpuF50n|649l5LoiN64FVCDE2d|AKoJbG56Fl9fR7hvEU

前面两个分别是URL和密钥,可以看到即使使用HTTPS访问面板,绑定二维码的URL也是HTTP而不是HTTPS。

经过测试,直接更改成HTTPS后生成二维码无法绑定,基本可以确定后面两项是签名,需要翻代码。

解决方法

经过翻找,宝塔获取面板地址的代码在/www/server/panel/class/public.py的第842行:

代码语言:javascript
复制
# 获取面板地址
def getPanelAddr():
    from flask import request
    protocol = 'https://' if os.path.exists("data/ssl.pl") else 'http://'
    return protocol + request.headers.get('host')

可以看到,面板地址的https or http取决于是否存在data/ssl.pl文件。 这个文件显然是通过面板设置开启SSL后才会生成的,通过反代开启的SSL并不会生成。

目标很简单,只要生成二维码绑定即可,所以做法也很简单。 只要把protocol写死为https://绑定后再恢复,问题解决,剩下的就看宝塔开发是否认为这是BUG并修复了。 即使不修复,大不了下次重装再改一次。

步骤

改成如下

代码语言:javascript
复制
# 获取面板地址
def getPanelAddr():
    from flask import request
    protocol = 'https://'
    return protocol + request.headers.get('host')

重启面板

到堡塔APP插件处生成二维码绑定手机。

该回原来的代码

代码语言:javascript
复制
# 获取面板地址
def getPanelAddr():
    from flask import request
    protocol = 'https://' if os.path.exists("data/ssl.pl") else 'http://'
    return protocol + request.headers.get('host')

重启面板

问题解决。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 10 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 情况
    • 版本
      • 面板访问设置
      • 问题、溯因和解决方法
        • 问题
          • 查找问题原因
            • 解决方法
            相关产品与服务
            SSL 证书
            腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档