diff --git a/class/core/site_api.py b/class/core/site_api.py
index 71d8143d6..87310e679 100755
--- a/class/core/site_api.py
+++ b/class/core/site_api.py
@@ -471,7 +471,7 @@ class site_api:
public.writeFile(file, conf)
msg = public.getInfo('网站[{1}]关闭SSL成功!', (siteName,))
- public.writeLog('TYPE_SITE', msg)
+ public.writeLog('网站管理', msg)
public.restartWeb()
return public.returnJson(True, 'SSL已关闭!')
@@ -625,6 +625,39 @@ class site_api:
return public.returnJson(True, 'OK', result)
+ def httpToHttpsApi(self):
+ siteName = request.form.get('siteName', '').encode('utf-8')
+ file = self.getHostConf(siteName)
+ conf = public.readFile(file)
+ if conf:
+ if conf.find('ssl_certificate') == -1:
+ return public.returnJson(False, '当前未开启SSL')
+ to = """#error_page 404/404.html;
+ #HTTP_TO_HTTPS_START
+ if ($server_port !~ 443){
+ rewrite ^(/.*)$ https://$host$1 permanent;
+ }
+ #HTTP_TO_HTTPS_END"""
+ conf = conf.replace('#error_page 404/404.html;', to)
+ public.writeFile(file, conf)
+
+ public.restartWeb()
+ return public.returnJson(True, '设置成功!')
+
+ def closeToHttpsApi(self):
+ siteName = request.form.get('siteName', '').encode('utf-8')
+ file = self.getHostConf(siteName)
+ conf = public.readFile(file)
+ if conf:
+ rep = "\n\s*#HTTP_TO_HTTPS_START(.|\n){1,300}#HTTP_TO_HTTPS_END"
+ conf = re.sub(rep, '', conf)
+ rep = "\s+if.+server_port.+\n.+\n\s+\s*}"
+ conf = re.sub(rep, '', conf)
+ public.writeFile(file, conf)
+
+ public.restartWeb()
+ return public.returnJson(True, '设置成功!')
+
def getIndexApi(self):
sid = request.form.get('id', '').encode('utf-8')
data = {}
diff --git a/route/static/app/site.js b/route/static/app/site.js
index 14890895a..2cc22b214 100755
--- a/route/static/app/site.js
+++ b/route/static/app/site.js
@@ -24,10 +24,10 @@ function getWeb(page, search) {
$("#webBody").html(body);
for (var i = 0; i < data.data.length; i++) {
//当前站点状态
- if (data.data[i].status == lan.site.running || data.data[i].status == '1') {
- var status = ""+lan.site.running_text+" ";
+ if (data.data[i].status == '正在运行' || data.data[i].status == '1') {
+ var status = "运行中";
} else {
- var status = ""+lan.site.stopped+" ";
+ var status = "已停止";
}
//是否有备份
@@ -1412,7 +1412,7 @@ function proxyList(siteName,type){
}
//开启缓存
-function OpenCache(siteName){
+function openCache(siteName){
var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
$.post('/site?action=ProxyCache',{siteName:siteName},function(rdata){
layer.close(loadT);
@@ -1463,33 +1463,16 @@ function to301(siteName,type){
//文件验证
-function file_check(){
- $(".check_message").html('
\
Let\'s Encrypt\
@@ -1552,225 +1535,127 @@ function setSSL(id,siteName){
$(".tab-nav span").click(function(){
$(this).addClass("on").siblings().removeClass("on");
});
- // var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
- // $.post('/site?action=GetSSL','siteName='+siteName,function(rdata){
- // layer.close(loadT);
- // $("#toHttps").attr('checked',rdata.httpTohttps);
- // switch(rdata.type){
- // case -1:
- // $(".tab-nav span").eq(3).addClass("on").siblings().removeClass("on");
- // var txt = "
"+lan.site.ssl_help_1+"
";
- // $(".tab-con").html(txt);
- // break;
- // case 1:
- // $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
- // setCookie('letssl',1);
- // var lets = '
'+lan.site.ssl_key+'
'
- // + '
'+lan.site.ssl_crt+'
'
- // + '
'
- // + '
- '+lan.site.ssl_help_2+'
- '+lan.site.ssl_help_3+'
'
- // $(".tab-con").html(lets);
- // $(".help-info-text").after("
");
- // break;
- // case 0:
- // $(".tab-nav span").eq(2).addClass("on").siblings().removeClass("on");
- // BTssl('other',id,siteName);
- // break;
- // case 2:
- // $(".tab-nav span").eq(0).addClass("on").siblings().removeClass("on");
- // BTssl('a',id,siteName);
- // break;
- // }
- // });
-}
-
-
-//关闭SSL
-function closeSSL(siteName){
- var txt = "
本站点未设置SSL,如需设置SSL,请选择切换类目申请开启SSL
\
-
关闭SSL以后,请务必清除浏览器缓存再访问站点
\
-
";
- setCookie('letssl',0);
- $(".tab-con").html(txt);
-}
-
-// function closeSSL(siteName){
-// var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
-// $.post('site?action=GetSSL','siteName='+siteName,function(rdata){
-// layer.close(loadT);
-// switch(rdata.type){
-// case -1:
-// var txt = "
"+lan.site.ssl_help_1+"
";
-// setCookie('letssl',0);
-// $(".tab-con").html(txt);
-// break;
-// case 1:
-// var txt = "Let's Encrypt";
-// closeSSLHTML(txt,siteName);
-// break;
-// case 0:
-// var txt = lan.site.other;
-// closeSSLHTML(txt,siteName);
-// break;
-// case 2:
-// var txt = lan.site.bt_ssl;
-// closeSSLHTML(txt,siteName);
-// break;
-// }
-// });
-// }
+ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
+ $.post('/site/get_ssl','siteName='+siteName,function(rdata){
+ layer.close(loadT);
+ $("#toHttps").attr('checked',rdata.data.httpTohttps);
+ switch(rdata.data.type){
+ case 1:
+ $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
+ setCookie('letssl',1);
+ var lets = '
密钥(KEY)
'
+ + '
证书(PEM格式)
'
+ + '
'
+ + '
- 已为您自动生成Let\'s Encrypt免费证书;
\
+ - 如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。
'
+ $(".tab-con").html(lets);
+ $(".help-info-text").after("
");
+ break;
+ case 0:
+ case 3:
+ $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on");
+ opSSL('other',id,siteName);
+ break;
+ case 2:
+ $(".tab-nav span").eq(0).addClass("on").siblings().removeClass("on");
+ opSSL('a',id,siteName);
+ break;
+ }
+ },'json');
+}
+
+
+
+
+function closeSSL(siteName){
+ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
+ $.post('/site/get_ssl','siteName='+siteName,function(rdata){
+ layer.close(loadT);
+ switch(rdata.data.type){
+ case -1:
+ var txt = "
本站点未设置SSL,如需设置SSL,请选择切换类目申请开启SSL
\
+
关闭SSL以后,请务必清除浏览器缓存再访问站点
";
+ setCookie('letssl',0);
+ $(".tab-con").html(txt);
+ break;
+ case 0:
+ var txt = "Let's Encrypt";
+ closeSSLHTML(txt,siteName);
+ break;
+ case 1:
+ var txt = '其它';
+ closeSSLHTML(txt,siteName);
+ break;
+ case 2:
+ var txt = 'SSL';
+ closeSSLHTML(txt,siteName);
+ break;
+ }
+ },'json');
+}
+
+//关闭SSL内容
+function closeSSLHTML(txt,siteName){
+ $(".tab-con").html("
"+lan.get('ssl_enable',[txt])+"
");
+}
//设置httpToHttps
function httpToHttps(siteName){
var isHttps = $("#toHttps").attr('checked');
if(isHttps){
layer.confirm('关闭强制HTTPS后需要清空浏览器缓存才能看到效果,继续吗?',{icon:3,title:"关闭强制HTTPS"},function(){
- $.post('site?action=CloseToHttps','siteName='+siteName,function(rdata){
+ $.post('/site/close_to_https','siteName='+siteName,function(rdata){
layer.msg(rdata.msg,{icon:rdata.status?1:2});
- });
+ },'json');
});
}else{
- $.post('site?action=HttpToHttps','siteName='+siteName,function(rdata){
+ $.post('/site/http_to_https','siteName='+siteName,function(rdata){
layer.msg(rdata.msg,{icon:rdata.status?1:2});
- });
+ },'json');
}
}
-//关闭SSL内容
-function closeSSLHTML(txt,siteName){
- $(".tab-con").html("
"+lan.get('ssl_enable',[txt])+"
");
-}
+
//SSL
function opSSL(type,id,siteName){
- var b = '
'+lan.site.domain+'
'
- + '
'
- + '
'
- + '
- '+lan.site.bt_ssl_help_5+'(包括根域名)
- '+lan.site.bt_ssl_help_6+'
- '+lan.site.bt_ssl_help_7+'
- 建议使用二级域名为www的域名申请证书,此时系统会默认赠送顶级域名为可选名称
- 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
'
- + '
';
-
var lets = '
管理员邮箱
'
- + '
'
- + '
'
- + '
- '+lan.site.bt_ssl_help_5+'
- '+lan.site.bt_ssl_help_8+'
- '+lan.site.bt_ssl_help_9+'
- 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
'
+ + '
'
+ + '
'
+ + '
- 申请之前,请确保域名已解析,如未解析会导致审核失败
\
+ - Let\'s Encrypt免费证书,有效期3个月,支持多域名。默认会自动续签
\
+ - 若您的站点使用了CDN或301重定向会导致续签失败
\
+ - 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
'
+ '
';
- var other = '
'+lan.site.ssl_key+'
'
- + '
'+lan.site.ssl_crt+'
'
- + '
'
- + '
- '+lan.site.bt_ssl_help_10+'
- 如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书
- PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt
- 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
';
+ var other = '
密钥(KEY)
'
+ + '
证书(PEM格式)
'
+ + '
'
+ + '
- 粘贴您的*.key以及*.pem内容,然后保存即可[帮助]。
\
+ - 如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书
- PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt
\
+ - 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
';
switch(type){
- case 'b':
- $(".tab-con").html(b);
- var opt = '';
- $.get('/data?action=getData&table=domain&list=True&search=' + id, function(rdata) {
- for(var i=0;i
'+rdata[i].name+''
- }
- }
- $("#domainlist").html(opt);
- })
- getSSLlist(siteName);
- $(".btsslApply").click(function(){
- var ym = $("#domainlist").val();
- if(ym.indexOf('www.') != -1){
- var len = $("#domainlist")[0].length;
- var rootDomain = ym.split(/www\./)[1];
- var mn = 0;
- for(var i=0;i"+lan.site.+"let's Encrypt证书有效期为3个月3个月有效期后自动续签");
- $("#btusername").blur(function(){
- if(!(/^1(3|4|5|7|8)\d{9}$/.test($(this).val()))){
- $("#btusername").css("border","1px solid #e53451");
- $("#btusername").next("i").html(lan.site.phone_input);
- }
- else{
- $("#btusername").removeAttr("style").css("width","200px");
- $("#btusername").next("i").empty();
- }
- });
- $(".btlogin").click(function(){
- var data = "username="+$("#btusername").val()+"&password="+$("#btpassword").val();
- $.post("/ssl?action=GetToken",data,function(tdata){
- if(tdata.status){
- layer.msg(tdata.msg,{icon:1});
- BTssl('lets',id,siteName);
- }
- else{
- layer.msg(tdata.msg,{icon:2})
- }
- })
- })
- }
- else{}
- });*/
if(getCookie('letssl') == 1){
- $.post('site?action=GetSSL','siteName='+siteName,function(rdata){
+ $.post('/site/get_ssl','siteName='+siteName,function(data){
+ var rdata = data['data'];
if(rdata.csr === false){
setCookie('letssl',0);
opSSL(type,id,siteName);
return;
}
- var lets = ''+lan.site.ssl_key+'
'
- + '
'+lan.site.ssl_crt+'
'
+ var lets = '
密钥(KEY)
'
+ + '
证书(PEM格式)
'
+ '
'
- + '
- '+lan.site.ssl_help_2+'
- '+lan.site.ssl_help_3+'
';
+ + '
- 已为您自动生成Let\'s Encrypt免费证书
\
+ - 如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。
';
$(".tab-con").html(lets);
- $(".help-info-text").after("
");
- });
+ $(".help-info-text").after("
");
+ },'json');
return;
}
$(".tab-con").html(lets);
@@ -1817,13 +1702,15 @@ function opSSL(type,id,siteName){
$(".tab-con").html(other);
var key = '';
var csr = '';
- var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
+ var loadT = layer.msg('正在提交任务...',{icon:16,time:0,shade: [0.3, '#000']});
$.post('site/get_ssl','siteName='+siteName,function(data){
- // console.log(data);
layer.close(loadT);
var rdata = data['data'];
+ if (rdata.type == 0){
+ setCookie('letssl', 1);
+ }
if(rdata.status){
- $(".ssl-btn").append("
");
+ $(".ssl-btn").append("
");
}
if(rdata.key == false) rdata.key = '';
if(rdata.csr == false) rdata.csr = '';
@@ -1832,36 +1719,8 @@ function opSSL(type,id,siteName){
},'json');
break;
}
- // table_fixed("btssl_table_list")
}
-//取证书列表
-function getSSLlist(siteName){
- var tr='';
- var loadT = layer.msg(lan.site.get_ssl_list,{icon:16,time:0,shade:0.3});
- $.get("/ssl?action=GetOrderList&siteName="+siteName,function(rdata){
- layer.close(loadT);
- if(rdata.status){
- for(var i=0;i
'+lan.site.deploy+'' : '';
- if(rdata.data[i].stateName == lan.site.domain_wait) {
- txt = ''+lan.site.domain_validate+'';
- //tips = lan.site.domain_check;
- //icoask = '?';
- }
- if(rdata.data[i].setup){
- txt = lan.site.deployed+' | '+lan.public.close+' ';
- }
-
- tr += ''+rdata.data[i].commonName+' | '+getLocalTime(rdata.data[i].endtime).split(" ")[0]+' | '+rdata.data[i].stateName+icoask+' | '+txt+' |
'
- }
- $("#ssllist").html(tr);
- }
- });
-}
//一键部署证书
function onekeySSl(partnerOrderId,siteName){
@@ -1874,7 +1733,7 @@ function onekeySSl(partnerOrderId,siteName){
}
//验证域名
-function VerifyDomain(partnerOrderId,siteName){
+function verifyDomain(partnerOrderId,siteName){
var loadT = layer.msg(lan.site.ssl_apply_2,{icon:16,time:0,shade:0.3});
$.post("/ssl?action=Completed","partnerOrderId="+partnerOrderId+'&siteName='+siteName,function(ydata){
layer.close(loadT);
@@ -1916,15 +1775,11 @@ function ocSSL(action,siteName){
}
setCookie('letssl',0);
- // $.post('/system?action=ServiceAdmin','name='+getCookie('serverType')+'&type=reload',function(result){
- // //setSSL(siteName);
- // if(!result.status) layer.msg(result.msg,{icon:2});
- // },'json');
layer.msg(rdata.msg,{icon:rdata.status?1:2});
if(action == 'close_ssl_conf'){
layer.msg('已关闭SSL,请务必清除浏览器缓存后再访问站点!',{icon:1,time:5000});
}
- $(".bt-w-menu .bgw").click();
+ $(".tab-nav .on").click();
},'json');
}
@@ -1937,13 +1792,14 @@ function newSSL(siteName,domains){
$.post('/site/create_let','siteName='+siteName+'&domains='+domains+'&updateOf=1&email='+email + force,function(rdata){
layer.close(loadT)
if(rdata.status){
- var mykeyhtml = ''+lan.site.ssl_key+'
'
- + '
'+lan.site.ssl_crt+'
'
+ var mykeyhtml = '
密钥(KEY)
'
+ + '
证书(PEM格式)
'
+ '
'
- + '
- '+lan.site.ssl_help_2+'
- '+lan.site.ssl_help_3+'
';
+ + '
- 已为您自动生成Let\'s Encrypt免费证书;
\
+ - 如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。
';
$(".btssl").html(mykeyhtml);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
- // setCookie('letssl',1);
+ setCookie('letssl',1);
return;
}
@@ -1956,7 +1812,7 @@ function newSSL(siteName,domains){
data = "
"+rdata.msg+"
"
if(rdata.err[0].length > 10) data += '
' + rdata.err[0].replace(/\n/g,'
') + '
';
if(rdata.err[1].length > 10) data += '
' + rdata.err[1].replace(/\n/g,'
') + '
';
- // setCookie('letssl',0);
+ setCookie('letssl',0);
layer.msg(data,{icon:2,area:'500px',time:0,shade:0.3,shadeClose:true});
},'json');
@@ -1978,15 +1834,6 @@ function saveSSL(siteName){
},'json');
}
-//更新SSL
-function ChangeSaveSSL(siteName){
- var loadT = layer.msg(lan.site.ssl_apply_4,{icon:16,time:0,shade: [0.3, '#000']});
- $.post('site?action=CreateLet','siteName='+siteName+'&updateOf=2',function(rdata){
- layer.close(loadT);
- layer.msg(rdata.msg,{icon:rdata.status?1:2});
- });
-}
-
//PHP版本
function phpVersion(siteName){
$.post('/site/get_site_php_version','siteName='+siteName,function(version){
@@ -1998,7 +1845,7 @@ function phpVersion(siteName){
$.post('/site/get_php_version',function(rdata){
var versionSelect = "
\
\
-
"+lan.site.php_ver+"\
+
PHP版本\
\
\
\
- - "+lan.site.switch_php_help1+"
\
- - "+lan.site.switch_php_help2+"
\
- - "+lan.site.switch_php_help3+"
\
+ - 请根据您的程序需求选择版本
\
+ - 若非必要,请尽量不要使用PHP5.2,这会降低您的服务器安全性;
\
+ - PHP7不支持mysql扩展,默认安装mysqli以及mysql-pdo。
\
\
\
";
- if(version.nodejsversion){
- var nodejs_checked = '';
- if(version.nodejs != -1) nodejs_checked = 'checked';
- versionSelect += '
\
-
\
- \
-
\
-
\
- - '+lan.site.nodejs_help1+' '+version.nodejsversion+';
\
- - '+lan.site.nodejs_help2+'
\
- - '+lan.site.nodejs_help3+'
\
-
\
-
'
- }
$("#webedit-con").html(versionSelect);
//验证PHP版本
$("select[name='phpVersion']").change(function(){