update
This commit is contained in:
parent
e3070b618f
commit
3894eebfb5
2
cli.sh
2
cli.sh
|
|
@ -110,7 +110,7 @@ case "$1" in
|
|||
mw_start_panel
|
||||
;;
|
||||
'task')
|
||||
mw_stop
|
||||
# mw_stop
|
||||
mw_start_bgtask
|
||||
;;
|
||||
esac
|
||||
|
|
@ -47,19 +47,6 @@ def writeLogs(data):
|
|||
except:
|
||||
pass
|
||||
|
||||
def mw_async(f):
|
||||
def wrapper(*args, **kwargs):
|
||||
thr = threading.Thread(target=f, args=args, kwargs=kwargs)
|
||||
thr.start()
|
||||
return wrapper
|
||||
|
||||
@mw_async
|
||||
def restartMw():
|
||||
time.sleep(1)
|
||||
cmd = mw.getPanelDir() + '/scripts/init.d/mw reload &'
|
||||
mw.execShell(cmd)
|
||||
|
||||
|
||||
def downloadFile(url, filename):
|
||||
# 下载文件
|
||||
try:
|
||||
|
|
@ -298,10 +285,11 @@ def openrestyRestartAtOnce():
|
|||
|
||||
# --------------------------------------Panel Restart Start --------------------------------------------- #
|
||||
def restartPanelService():
|
||||
restartTip = mw.getPanelDir()+'/data/restart.pl'
|
||||
restart_tip = mw.getPanelDir()+'/data/restart.pl'
|
||||
while True:
|
||||
if os.path.exists(restartTip):
|
||||
os.remove(restartTip)
|
||||
if os.path.exists(restart_tip):
|
||||
print("restart panel")
|
||||
os.remove(restart_tip)
|
||||
mw.panelCmd('restart_panel')
|
||||
time.sleep(1)
|
||||
# --------------------------------------Panel Restart End --------------------------------------------- #
|
||||
|
|
|
|||
|
|
@ -50,3 +50,20 @@ def del_panel_ssl():
|
|||
choose = request.form.get('choose', '').strip()
|
||||
return MwSetting.instance().delPanelSsl(choose)
|
||||
|
||||
# 开启面板证书
|
||||
@blueprint.route('/set_panel_local_ssl', endpoint='set_panel_local_ssl', methods=['POST'])
|
||||
@panel_login_required
|
||||
def set_panel_local_ssl():
|
||||
cert_type = request.form.get('cert_type', '').strip()
|
||||
return MwSetting.instance().setPanelLocalSsl(cert_type)
|
||||
|
||||
@blueprint.route('/close_panel_ssl', endpoint='close_panel_ssl', methods=['POST'])
|
||||
@panel_login_required
|
||||
def close_panel_ssl():
|
||||
return MwSetting.instance().closePanelSsl()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1298,7 +1298,7 @@ def panelCmd(method):
|
|||
execShell(cmd + ' ' + method)
|
||||
return
|
||||
|
||||
cmd = mw.getPanelDir() + '/scripts/init.d/mw'
|
||||
cmd = getPanelDir() + '/scripts/init.d/mw'
|
||||
if os.path.exists(cmd):
|
||||
data = execShell(cmd + ' ' + method)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import os
|
|||
|
||||
import core.mw as mw
|
||||
import utils.system as system
|
||||
import thisdb
|
||||
|
||||
cpu_info = system.getCpuInfo()
|
||||
workers = cpu_info[1]
|
||||
|
|
@ -50,16 +51,15 @@ if os.path.exists(default_ipv6_file):
|
|||
else:
|
||||
bind.append('0.0.0.0:%s' % panel_port)
|
||||
|
||||
|
||||
ssl_choose_file = panel_dir+'/ssl/choose.pl'
|
||||
if os.path.exists(ssl_choose_file):
|
||||
ssl_choose = mw.readFile(ssl_choose_file).strip()
|
||||
if mw.inArray(['local','nginx'],ssl_choose):
|
||||
tmp_cert = panel_dir+'/ssl/'+ssl_choose+'/cert.pem'
|
||||
tmp_private = panel_dir+'/ssl/'+ssl_choose+'/private.pem'
|
||||
if os.path.exists(tmp_cert) and os.path.exists(tmp_private):
|
||||
certfile = tmp_cert
|
||||
keyfile = tmp_private
|
||||
panel_ssl_data = thisdb.getOptionByJson('panel_ssl', default={'open':False})
|
||||
if panel_ssl_data['open']:
|
||||
choose = panel_ssl_data['choose']
|
||||
if mw.inArray(['local','nginx'],choose):
|
||||
panel_cert = panel_dir+'/ssl/'+choose+'/cert.pem'
|
||||
panel_private = panel_dir+'/ssl/'+choose+'/private.pem'
|
||||
if os.path.exists(panel_cert) and os.path.exists(panel_private):
|
||||
certfile = panel_cert
|
||||
keyfile = panel_private
|
||||
ciphers = 'TLSv1 TLSv1.1 TLSv1.2 TLSv1.3'
|
||||
ssl_version = 2
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@
|
|||
|
||||
<p class="mtb15">
|
||||
<span class="set-tit text-right" title="面板SSL" style="float: left;">面板SSL</span>
|
||||
<input id="cfg_ssl" name="bind_ssl" class="btswitch btswitch-ios" type="checkbox" {{data['ssl']}}>
|
||||
<input id="cfg_ssl" name="bind_ssl" class="btswitch btswitch-ios" type="checkbox" {% if data['panel_ssl']['open'] %}checked{% endif %}>
|
||||
<label class="btswitch-btn ml5" for="cfg_ssl" style="float: left;margin-top:4px;"></label>
|
||||
<button ype="button" class="btn btn-default btn-xs panel_api_btn" style="vertical-align: middle; margin-left: 10px" onclick="getPanelSSL();">面板SSL配置</button>
|
||||
<span class="set-info c7">为面板设置https协议访问,提升面板访问<b style="color: red;">安全性</b></span>
|
||||
|
|
|
|||
|
|
@ -63,5 +63,4 @@ def setOption(name, value,
|
|||
'type':type,
|
||||
'value':value
|
||||
}
|
||||
mw.M('option').insert(add_option)
|
||||
return True
|
||||
return mw.M('option').insert(add_option)
|
||||
|
|
@ -83,5 +83,7 @@ def getGlobalVar():
|
|||
# 邮件通知设置
|
||||
data['notify_email'] = thisdb.getOptionByJson('notify_email', default={'open':False}, type='notify')
|
||||
data['notify_tgbot'] = thisdb.getOptionByJson('notify_tgbot', default={'open':False}, type='notify')
|
||||
|
||||
data['panel_ssl'] = thisdb.getOptionByJson('panel_ssl', default={'open':False})
|
||||
|
||||
return data
|
||||
|
|
@ -13,6 +13,7 @@ import re
|
|||
import threading
|
||||
import re
|
||||
import time
|
||||
import json
|
||||
|
||||
import core.mw as mw
|
||||
import thisdb
|
||||
|
|
@ -164,21 +165,34 @@ class setting(object):
|
|||
return mw.returnData(False, '未知类型!')
|
||||
|
||||
# 面板本地SSL设置
|
||||
def setPanelLocalSsl(self):
|
||||
pdir = mw.getPanelDir()
|
||||
def setPanelLocalSsl(self, cert_type):
|
||||
panel_ssl_data = thisdb.getOptionByJson('panel_ssl', default={'open':False})
|
||||
|
||||
if not panel_ssl_data['open']:
|
||||
panel_ssl_data['open'] = True
|
||||
|
||||
pdir = mw.getPanelDir()
|
||||
cert = {}
|
||||
keyPath = pdir+'/ssl/local/private.pem'
|
||||
certPath = pdir+'/ssl/local/cert.pem'
|
||||
|
||||
if not os.path.exists(certPath):
|
||||
mw.createLocalSSL()
|
||||
|
||||
choose_file = self.__file['ssl']
|
||||
mw.writeFile(choose_file, 'local')
|
||||
|
||||
panel_ssl_data['choose'] = 'local'
|
||||
thisdb.setOption('panel_ssl', json.dumps(panel_ssl_data))
|
||||
mw.restartMw()
|
||||
return mw.returnJson(True, '设置成功')
|
||||
return mw.returnData(True, '设置成功')
|
||||
|
||||
def closePanelSsl(self):
|
||||
panel_ssl_data = thisdb.getOptionByJson('panel_ssl', default={'open':False})
|
||||
|
||||
if panel_ssl_data['open']:
|
||||
panel_ssl_data['open'] = False
|
||||
|
||||
thisdb.setOption('panel_ssl', json.dumps(panel_ssl_data))
|
||||
mw.restartMw()
|
||||
return mw.returnData(True, '设置成功')
|
||||
|
||||
|
||||
# 申请面板let证书
|
||||
# def applyPanelAcmeSsl(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue