diff --git a/web/admin/site/ssl.py b/web/admin/site/ssl.py index 5d7a5b048..a7cdd4bc4 100644 --- a/web/admin/site/ssl.py +++ b/web/admin/site/ssl.py @@ -32,6 +32,16 @@ def get_ssl(): ssl_type = request.form.get('ssl_type', '') return MwSites.instance().getSsl(site_name, ssl_type) +# 获取证书信息 +@blueprint.route('/set_ssl', endpoint='set_ssl', methods=['POST']) +@panel_login_required +def set_ssl(): + site_name = request.form.get('siteName', '') + key = request.form.get('key', '') + csr = request.form.get('csr', '') + return MwSites.instance().setSsl(site_name, key, csr) + + # 删除证书 @blueprint.route('/close_ssl_conf', endpoint='close_ssl_conf', methods=['POST']) @panel_login_required diff --git a/web/static/app/site.js b/web/static/app/site.js index ce2fcd4ec..8bac91dad 100755 --- a/web/static/app/site.js +++ b/web/static/app/site.js @@ -1025,8 +1025,10 @@ function setIndexList(id){ } -/*站点修改*/ +/* 站点修改 */ function webEdit(id,website,endTime,addtime){ + // 暂时关闭 - 子目录绑定 + //

子目录绑定

\ layer.open({ type: 1, area: '700px', @@ -1036,7 +1038,6 @@ function webEdit(id,website,endTime,addtime){ content: "
\
\

域名管理

\ -

子目录绑定

\

网站目录

\

流量限制

\

伪静态

\ diff --git a/web/utils/site.py b/web/utils/site.py index fbb3a83dc..ae0aecf81 100644 --- a/web/utils/site.py +++ b/web/utils/site.py @@ -413,6 +413,46 @@ class sites(object): mw.writeLog('网站管理', '设置成功,站点【{1}】到期【{2}】后将自动停止!', (info['name'], end_date,)) return mw.returnData(True, '设置成功,站点到期后将自动停止!') + def setSsl(self, site_name, key, csr): + path = self.sslDir + '/' + site_name + if not os.path.exists(path): + mw.execShell('mkdir -p ' + path) + + csrpath = path + "/fullchain.pem" # 生成证书路径 + keypath = path + "/privkey.pem" # 密钥文件路径 + + if(key.find('KEY') == -1): + return mw.returnJson(False, '秘钥错误,请检查!') + if(csr.find('CERTIFICATE') == -1): + return mw.returnJson(False, '证书错误,请检查!') + + mw.writeFile('/tmp/cert.pl', csr) + if not mw.checkCert('/tmp/cert.pl'): + return mw.returnData(False, '证书错误,请粘贴正确的PEM格式证书!') + + mw.backFile(keypath) + mw.backFile(csrpath) + + mw.writeFile(keypath, key) + mw.writeFile(csrpath, csr) + + # 写入配置文件 + result = self.setSslConf(site_name) + if not result['status']: + return result + + isError = mw.checkWebConfig() + if(type(isError) == str): + mw.restoreFile(keypath) + mw.restoreFile(csrpath) + + msg = 'ERROR:
' + isError.replace("\n", '
') + '
' + return mw.returnData(False, msg) + + mw.writeLog('网站管理', '证书已保存!') + mw.restartWeb() + return mw.returnData(True, '证书已保存!') + # ssl相关方法 start def setSslConf(self, site_name): file = self.getHostConf(site_name)