parent
835fea0ad6
commit
ff543284cc
|
|
@ -118,3 +118,4 @@ data/json/config.json
|
|||
data/site.pl
|
||||
data/admin_path.pl
|
||||
data/close.pl
|
||||
ssl/input.pl
|
||||
|
|
|
|||
|
|
@ -144,12 +144,93 @@ class config_api:
|
|||
public.execShell("chown root.root " + filename)
|
||||
return public.returnJson(True, '面板已关闭!')
|
||||
|
||||
def setIpv6StatusApi(self):
|
||||
ipv6_file = 'data/ipv6.pl'
|
||||
if os.path.exists('data/ipv6.pl'):
|
||||
os.remove(ipv6_file)
|
||||
public.writeLog('面板设置', '关闭面板IPv6兼容!')
|
||||
else:
|
||||
public.writeFile(ipv6_file, 'True')
|
||||
public.writeLog('面板设置', '开启面板IPv6兼容!')
|
||||
public.restartMw()
|
||||
return public.returnJson(True, '设置成功!')
|
||||
|
||||
# 获取面板证书
|
||||
def getPanelSslApi(self):
|
||||
cert = {}
|
||||
cert['privateKey'] = public.readFile('ssl/privateKey.pem')
|
||||
cert['certPem'] = public.readFile('ssl/certificate.pem')
|
||||
cert['rep'] = os.path.exists('ssl/input.pl')
|
||||
return public.getJson(cert)
|
||||
|
||||
# 保存面板证书
|
||||
def savePanelSslApi(self):
|
||||
keyPath = 'ssl/privateKey.pem'
|
||||
certPath = 'ssl/certificate.pem'
|
||||
checkCert = '/tmp/cert.pl'
|
||||
|
||||
certPem = request.form.get('certPem', '').strip()
|
||||
privateKey = request.form.get('privateKey', '').strip()
|
||||
|
||||
public.writeFile(checkCert, certPem)
|
||||
if privateKey:
|
||||
public.writeFile(keyPath, privateKey)
|
||||
if certPem:
|
||||
public.writeFile(certPath, certPem)
|
||||
if not public.checkCert(checkCert):
|
||||
return public.returnJson(False, '证书错误,请检查!')
|
||||
public.writeFile('ssl/input.pl', 'True')
|
||||
return public.returnJson(True, '证书已保存!')
|
||||
|
||||
# 设置面板SSL
|
||||
def setPanelSslApi(self):
|
||||
sslConf = public.getRunDir() + '/data/ssl.pl'
|
||||
if os.path.exists(sslConf):
|
||||
os.system('rm -f ' + sslConf)
|
||||
return public.returnJson(True, 'SSL已关闭,请使用http协议访问面板!')
|
||||
else:
|
||||
os.system('pip install cffi==1.10')
|
||||
os.system('pip install cryptography==2.1')
|
||||
os.system('pip install pyOpenSSL==16.2')
|
||||
try:
|
||||
if not self.createSSL():
|
||||
return public.returnJson(False, '开启失败,无法自动安装pyOpenSSL组件!<p>请尝试手动安装: pip install pyOpenSSL</p>')
|
||||
public.writeFile(sslConf, 'True')
|
||||
except Exception as ex:
|
||||
return public.returnJson(False, '开启失败,无法自动安装pyOpenSSL组件!<p>请尝试手动安装: pip install pyOpenSSL</p>')
|
||||
return public.returnJson(True, '开启成功,请使用https协议访问面板!')
|
||||
|
||||
def getApi(self):
|
||||
data = {}
|
||||
|
||||
return public.getJson(data)
|
||||
##### ----- end ----- ###
|
||||
|
||||
# 自签证书
|
||||
def createSSL(self):
|
||||
if os.path.exists('ssl/input.pl'):
|
||||
return True
|
||||
import OpenSSL
|
||||
key = OpenSSL.crypto.PKey()
|
||||
key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)
|
||||
cert = OpenSSL.crypto.X509()
|
||||
cert.set_serial_number(0)
|
||||
cert.get_subject().CN = '120.27.27.98'
|
||||
cert.set_issuer(cert.get_subject())
|
||||
cert.gmtime_adj_notBefore(0)
|
||||
cert.gmtime_adj_notAfter(86400 * 3650)
|
||||
cert.set_pubkey(key)
|
||||
cert.sign(key, 'md5')
|
||||
cert_ca = OpenSSL.crypto.dump_certificate(
|
||||
OpenSSL.crypto.FILETYPE_PEM, cert)
|
||||
private_key = OpenSSL.crypto.dump_privatekey(
|
||||
OpenSSL.crypto.FILETYPE_PEM, key)
|
||||
if len(cert_ca) > 100 and len(private_key) > 100:
|
||||
public.writeFile('ssl/certificate.pem', cert_ca)
|
||||
public.writeFile('ssl/privateKey.pem', private_key)
|
||||
print cert_ca, private_key
|
||||
return True
|
||||
return False
|
||||
|
||||
def getVersion(self):
|
||||
return self.__version
|
||||
|
||||
|
|
@ -171,6 +252,18 @@ class config_api:
|
|||
else:
|
||||
data['admin_path'] = public.readFile(admin_path_file)
|
||||
|
||||
ipv6_file = 'data/ipv6.pl'
|
||||
if os.path.exists('data/ipv6.pl'):
|
||||
data['ipv6'] = 'checked'
|
||||
else:
|
||||
data['ipv6'] = ''
|
||||
|
||||
ssl_file = 'data/ssl.pl'
|
||||
if os.path.exists('data/ssl.pl'):
|
||||
data['ssl'] = 'checked'
|
||||
else:
|
||||
data['ssl'] = ''
|
||||
|
||||
data['username'] = public.M('users').where(
|
||||
"id=?", (1,)).getField('username')
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
True
|
||||
|
|
@ -191,10 +191,9 @@ def doLogin():
|
|||
@app.route('/<reqClass>', methods=['POST', 'GET'])
|
||||
@app.route('/', methods=['POST', 'GET'])
|
||||
def index(reqClass=None, reqAction=None, reqData=None):
|
||||
# comReturn = common.local()
|
||||
# print comReturn
|
||||
# if comReturn:
|
||||
# return comReturn
|
||||
comReturn = common.local()
|
||||
if comReturn:
|
||||
return comReturn
|
||||
|
||||
if (reqClass == None):
|
||||
reqClass = 'index'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
$.post('/config/get','',function(rdata){
|
||||
console.log(rdata);
|
||||
},'json');
|
||||
// $.post('/config/get','',function(rdata){
|
||||
// console.log(rdata);
|
||||
// },'json');
|
||||
|
||||
|
||||
$(".set-submit").click(function(){
|
||||
|
|
@ -199,8 +199,117 @@ function syncDate(){
|
|||
$.post('/config/sync_date','',function(rdata){
|
||||
layer.close(loadT);
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:2});
|
||||
setTimeout(function(){
|
||||
window.location.reload();
|
||||
},1500);
|
||||
setTimeout(function(){window.location.reload();},1500);
|
||||
},'json');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function setIPv6() {
|
||||
var loadT = layer.msg('正在配置,请稍候...', { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/config/set_ipv6_status', {}, function (rdata) {
|
||||
layer.close(loadT);
|
||||
layer.msg(rdata.msg, {icon:rdata.status?1:2});
|
||||
setTimeout(function(){window.location.reload();},1500);
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
||||
//设置面板SSL
|
||||
function setPanelSSL(){
|
||||
var status = $("#sshswitch").prop("checked")==true?1:0;
|
||||
var msg = $("#panelSSL").attr('checked')?'关闭SSL后,必需使用http协议访问面板,继续吗?':'<a style="font-weight: bolder;font-size: 16px;">危险!此功能不懂别开启!</a>\
|
||||
<li style="margin-top: 12px;color:red;">必须要用到且了解此功能才决定自己是否要开启!</li>\
|
||||
<li>面板SSL是自签证书,不被浏览器信任,显示不安全是正常现象</li>\
|
||||
<li>开启后导致面板不能访问,可以点击下面链接了解解决方法</li>\
|
||||
<p style="margin-top: 10px;">\
|
||||
<input type="checkbox" id="checkSSL" /><label style="font-weight: 400;margin: 3px 5px 0px;" for="checkSSL">我已了经解详情,并愿意承担风险</label>\
|
||||
<a target="_blank" class="btlink" href="https://www.bt.cn/bbs/thread-4689-1-1.html" style="float: right;">了解详情</a>\
|
||||
</p>';
|
||||
layer.confirm(msg,{title:'设置面板SSL',closeBtn:2,icon:3,area:'550px',cancel:function(){
|
||||
if(status == 0){
|
||||
$("#panelSSL").prop("checked",false);
|
||||
}
|
||||
else{
|
||||
$("#panelSSL").prop("checked",true);
|
||||
}
|
||||
}},function(){
|
||||
if(window.location.protocol.indexOf('https') == -1){
|
||||
if(!$("#checkSSL").prop('checked')){
|
||||
layer.msg(lan.config.ssl_ps,{icon:2});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var loadT = layer.msg('正在安装并设置SSL组件,这需要几分钟时间...',{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/config/set_panel_ssl','',function(rdata){
|
||||
layer.close(loadT);
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:5});
|
||||
if(rdata.status === true){
|
||||
$.post('/system/restart','',function (rdata) {
|
||||
layer.close(loadT);
|
||||
layer.msg(rdata.msg);
|
||||
setTimeout(function(){
|
||||
window.location.href = ((window.location.protocol.indexOf('https') != -1)?'http://':'https://') + window.location.host + window.location.pathname;
|
||||
},3000);
|
||||
},'json');
|
||||
}
|
||||
},'json');
|
||||
},function(){
|
||||
if(status == 0){
|
||||
$("#panelSSL").prop("checked",false);
|
||||
}
|
||||
else{
|
||||
$("#panelSSL").prop("checked",true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function getPanelSSL(){
|
||||
var loadT = layer.msg('正在获取证书信息...',{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/config/get_panel_ssl',{},function(cert){
|
||||
layer.close(loadT);
|
||||
var certBody = '<div class="tab-con">\
|
||||
<div class="myKeyCon ptb15">\
|
||||
<div class="ssl-con-key pull-left mr20">密钥(KEY)<br>\
|
||||
<textarea id="key" class="bt-input-text">'+cert.privateKey+'</textarea>\
|
||||
</div>\
|
||||
<div class="ssl-con-key pull-left">证书(PEM格式)<br>\
|
||||
<textarea id="csr" class="bt-input-text">'+cert.certPem+'</textarea>\
|
||||
</div>\
|
||||
<div class="ssl-btn pull-left mtb15" style="width:100%">\
|
||||
<button class="btn btn-success btn-sm" onclick="savePanelSSL()">保存</button>\
|
||||
</div>\
|
||||
</div>\
|
||||
<ul class="help-info-text c7 pull-left">\
|
||||
<li>粘贴您的*.key以及*.pem内容,然后保存即可<a href="http://www.bt.cn/bbs/thread-704-1-1.html" class="btlink" target="_blank">[帮助]</a>。</li>\
|
||||
<li>如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书</li><li>PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt</li>\
|
||||
</ul>\
|
||||
</div>'
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: "600px",
|
||||
title: '自定义面板证书',
|
||||
closeBtn: 2,
|
||||
shift: 5,
|
||||
shadeClose: false,
|
||||
content:certBody
|
||||
});
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
||||
function savePanelSSL(){
|
||||
var data = {
|
||||
privateKey:$("#key").val(),
|
||||
certPem:$("#csr").val()
|
||||
}
|
||||
var loadT = layer.msg('正在安装并设置SSL组件,这需要几分钟时间...',{icon:16,time:0,shade: [0.3, '#000']});
|
||||
$.post('/config/save_panel_ssl',data,function(rdata){
|
||||
layer.close(loadT);
|
||||
if(rdata.status){
|
||||
layer.closeAll();
|
||||
}
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:2});
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,9 +19,17 @@
|
|||
</div>
|
||||
|
||||
<div class="ss-text pull-left mr50">
|
||||
<em class="btlink" style="color: #20a53a;" onclick="GetPanelSSL()" title="点击自定义面板证书">面板SSL</em>
|
||||
<em title="开启后允许使用ipv6访问面板">监听IPv6</em>
|
||||
<div class='ssh-item'>
|
||||
<input class='btswitch btswitch-ios' id='panelIPv6' type='checkbox' {{data['ipv6']}}>
|
||||
<label class='btswitch-btn' for='panelIPv6' onclick="setIPv6()"></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ss-text pull-left mr50">
|
||||
<em class="btlink" style="color: #20a53a;" onclick="getPanelSSL()" title="点击自定义面板证书">面板SSL</em>
|
||||
<div class='ssh-item'>
|
||||
<input class='btswitch btswitch-ios' id='panelSSL' type='checkbox'>
|
||||
<input class='btswitch btswitch-ios' id='panelSSL' type='checkbox' {{data['ssl']}}>
|
||||
<label class='btswitch-btn' for='panelSSL' onclick="setPanelSSL()"></label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,64 +1,17 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIFyjCCBLKgAwIBAgIQJTAtADozzDddEtBm8iuvEzANBgkqhkiG9w0BAQsFADCB
|
||||
lzELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs
|
||||
IEluYy4xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxHTAbBgNVBAsT
|
||||
FERvbWFpbiBWYWxpZGF0ZWQgU1NMMSEwHwYDVQQDExhUcnVzdEFzaWEgRFYgU1NM
|
||||
IENBIC0gRzUwHhcNMTcwODEyMDAwMDAwWhcNMTgwODEyMjM1OTU5WjAfMR0wGwYD
|
||||
VQQDDBRhbXcwMDI2MDE0MTRmcy5idC5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAOG/FLVtHXI5SPllMUkCgk/BOfOC8qLCthuutDh95+zH1MmtNtkq
|
||||
SsSbl4+ODXnhZ+kL+vuDpm4rwKA86tRP+AShIxk2FaK37bGdiEU+RvQkuMK+Wqr5
|
||||
NLNzOPJihvxxgRYP24qdn0aRW6ihFqRqrLZeNmX7APvq1815F5YcHXS8PRb8KTKo
|
||||
GU7i4o4S6KvEsvDUfGc6d2hAzuTUoLGQr+tGWESL+Q6qNl46Whdlz9an6Kl1S9IE
|
||||
T4zkPZgzZn4o5yKvpBe7N3CUYuE4kqUV1oVuikJya0gEJQgTt7cavPWGA/xUrVFK
|
||||
x3SV1wE+GLKvkQJ9Ap7ssLSO0s44qiOYDyMCAwEAAaOCAocwggKDMB8GA1UdEQQY
|
||||
MBaCFGFtdzAwMjYwMTQxNGZzLmJ0LmNuMAkGA1UdEwQCMAAwYQYDVR0gBFowWDBW
|
||||
BgZngQwBAgEwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMw
|
||||
JQYIKwYBBQUHAgIwGQwXaHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwHwYDVR0jBBgw
|
||||
FoAUbVjHfxrn4T8upoyXNUK79NM4rD8wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW
|
||||
MBQGCCsGAQUFBwMBBggrBgEFBQcDAjCBmwYIKwYBBQUHAQEEgY4wgYswPAYIKwYB
|
||||
BQUHMAGGMGh0dHA6Ly90cnVzdGFzaWEyLW9jc3AuZGlnaXRhbGNlcnR2YWxpZGF0
|
||||
aW9uLmNvbTBLBggrBgEFBQcwAoY/aHR0cDovL3RydXN0YXNpYTItYWlhLmRpZ2l0
|
||||
YWxjZXJ0dmFsaWRhdGlvbi5jb20vdHJ1c3Rhc2lhZzUuY3J0MIIBAgYKKwYBBAHW
|
||||
eQIEAgSB8wSB8ADuAHUA3esdK3oNT6Ygi4GtgWhwfi6OnQHVXIiNPRHEzbbsvswA
|
||||
AAFd1CGINQAABAMARjBEAiA5wfZjgU0lC7GpY92MIkfh0UcnWvzthnKZ26mQk8NT
|
||||
uQIgHyM5oBCkiQMokVBnKO802YIOup0kUOhhsPlWU4K7PSAAdQCkuQmQtBhYFIe7
|
||||
E6LMZ3AKPDWYBPkb37jjd80OyA3cEAAAAV3UIYh0AAAEAwBGMEQCIAaLUzpQpc0C
|
||||
BAWnnZxsyW23WgcOsbiOP84EltTkR780AiBG3Ywinpkk+0ozGZC6g/cNkTOXQIl5
|
||||
0RXVF04AF/bSljANBgkqhkiG9w0BAQsFAAOCAQEARnZ8z+5zC3vZwBmcK2l7yZ5H
|
||||
A3iQO3DSN+51EeycZ7uUN/A3Hx0/ZjdB7JjlWvohA7SimNw6xQald5mI65bmbDwy
|
||||
ngtTfcZTx32WtbkU5/PiQSvkWMPqB4HJdyiozpdG6hIPZYvC2CqZHRBfgMo7XkQd
|
||||
oj3fW1zBGw79fgqJkcs+9Qx0MGo4BaeBAP8ZSQAfDn/TR8BJFXzHnnk70pTwPKCa
|
||||
EPuL8G/QDMy7+9WJB4t9qTdgxuqLdVSA7B3iGFYsQdR6Bjzbbngjr+OQIVDjij8c
|
||||
a9+Mw5+S7EM2EE3L+nkHeXyB+EynVNWQqw4ASJ/S3u3OPQHkeKj1ppfBXJW7ww==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFZTCCBE2gAwIBAgIQOhAOfxCeGsWcxf/2QNXkQjANBgkqhkiG9w0BAQsFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMTYwODExMDAwMDAwWhcNMjYwODEwMjM1OTU5WjCBlzEL
|
||||
MAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIElu
|
||||
Yy4xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxHTAbBgNVBAsTFERv
|
||||
bWFpbiBWYWxpZGF0ZWQgU1NMMSEwHwYDVQQDExhUcnVzdEFzaWEgRFYgU1NMIENB
|
||||
IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC39aSJZG/97x3a
|
||||
6Qmuc9+MubagegRAVUmFYHTYTs8IKB2pM7wXN7W8mekdZaEgUjDFxvRBK/DhTb7U
|
||||
8ONLsKKdT86aOhzbz2noCTn9wPWnGwkg+/4YKg/dPQQdV9tMsSu0cwqInWHxSAkm
|
||||
AI1hYFC9D7Sf7Hp/5cRcD+dK454YMRzNOGLQnCVI8JEqrz6o9SOvQNTqTcfqt6DC
|
||||
0UlXG+MPD1eNPjlzf1Vwaab+VSTgySoC+Ikbq2VsdykeOiGXW/OIiASH7+2LcR05
|
||||
PmQ7GEOlM8yzoVojFpM8sHz+WxI05ZOPri5+vX3HhHHjWr5432G0dVmgohnZvlVZ
|
||||
oy8XrlbpAgMBAAGjggF2MIIBcjASBgNVHRMBAf8ECDAGAQH/AgEAMC8GA1UdHwQo
|
||||
MCYwJKAioCCGHmh0dHA6Ly9zLnN5bWNiLmNvbS9wY2EzLWc1LmNybDAOBgNVHQ8B
|
||||
Af8EBAMCAQYwLgYIKwYBBQUHAQEEIjAgMB4GCCsGAQUFBzABhhJodHRwOi8vcy5z
|
||||
eW1jZC5jb20wYQYDVR0gBFowWDBWBgZngQwBAgEwTDAjBggrBgEFBQcCARYXaHR0
|
||||
cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0cHM6Ly9kLnN5
|
||||
bWNiLmNvbS9ycGEwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCkGA1Ud
|
||||
EQQiMCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0yLTYwMTAdBgNVHQ4EFgQU
|
||||
bVjHfxrn4T8upoyXNUK79NM4rD8wHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnzQzn6
|
||||
Aq8zMTMwDQYJKoZIhvcNAQELBQADggEBABUphhBbeG7scE3EveIN0dOjXPgwgQi8
|
||||
I2ZAKYm6DawoGz1lEJVdvFmkyMbP973X80b7mKmn0nNbe1kjA4M0O0hHaMM1ZaEv
|
||||
7e9vHEAoGyysMO6HzPWYMkyNxcCV7Nos2Uv4RvLDpQHh7P4Kt6fUU13ipcynrtQD
|
||||
1lFUM0yoTzwwFsPu3Pk+94hL58ErqwqJQwxoHMgLIQeMVHeNKcWFy1bddSbIbCWU
|
||||
Zs6cMxhrra062ZCpDCbxyEaFNGAtYQMqNz55Z/14XgSUONZ/cJTns6QKhpcgTOwB
|
||||
fnNzRnk+aWreP7osKhXlz4zs+llP7goBDKFOMMtoEXx3YjJCKgpqmBU=
|
||||
MIICojCCAYoCAQAwDQYJKoZIhvcNAQEEBQAwFzEVMBMGA1UEAwwMMTIwLjI3LjI3
|
||||
Ljk4MB4XDTE5MDIyMjA2MDg1MVoXDTI5MDIxOTA2MDg1MVowFzEVMBMGA1UEAwwM
|
||||
MTIwLjI3LjI3Ljk4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3P5X
|
||||
4ROFaVpHNoI+a4+epK5gcfRRxyAjdroryjT/HdSQU9CnE28l5zrUsPx7JZcqbnNN
|
||||
/S6gJcsIDSqglKRLBgBPab65/MwJvHKoowfuG75144DsgY5bMvoCqSTGX77Ado1W
|
||||
vcEjwsYolxiDcnSp9A8VZX/qjTgWHe8/Si2saDa2zJ473n4qa0q/DvGXIQDviZcy
|
||||
cxkPJgoRpFw03oJmdZsJGJ34+TN0AN9XiZ0XgOQIKIq8QXc7By+YUryfecz4GYQT
|
||||
9f0K9sfY3W0bkkZ6LW9tauZU3N3/nr5fuOU7ia+IhPop7ly+9E6lyGHViwqcufbz
|
||||
95wBQJR9AEwbJJdtRQIDAQABMA0GCSqGSIb3DQEBBAUAA4IBAQAQtFdCabM+Ybog
|
||||
Z8xAbikeokOXr+X3UnUehXr3/FSJ+0/aWCzmNn8gXskYLyvCR1fkrk/0bVZoDxXt
|
||||
pwux58CiJAbn6dhFIP9thqghqQ75Z/YR245pbulpamBgLTVdqWPyaaXokcXpr8wg
|
||||
DhPZnfowCFu++UqoBeJ0IJGa1dpKdXYR8VIZFXXBf8vPGWsDu1dxMYHEM03Geutm
|
||||
PNOJgENJGu9XHGBtzadiIiUI4rrmBqeMhQCUeMuiT3URfLAKujz2fi2RvohJvI9/
|
||||
MYmngt54XY1AJW/wKpdO+FhyIyDl/xGbxdbe1DuCrAm4okAlQVrp1Q2TTEcXflns
|
||||
jeT+bba8
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,27 +1,28 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEA4b8UtW0dcjlI+WUxSQKCT8E584LyosK2G660OH3n7MfUya02
|
||||
2SpKxJuXj44NeeFn6Qv6+4OmbivAoDzq1E/4BKEjGTYVorftsZ2IRT5G9CS4wr5a
|
||||
qvk0s3M48mKG/HGBFg/bip2fRpFbqKEWpGqstl42ZfsA++rXzXkXlhwddLw9Fvwp
|
||||
MqgZTuLijhLoq8Sy8NR8Zzp3aEDO5NSgsZCv60ZYRIv5Dqo2XjpaF2XP1qfoqXVL
|
||||
0gRPjOQ9mDNmfijnIq+kF7s3cJRi4TiSpRXWhW6KQnJrSAQlCBO3txq89YYD/FSt
|
||||
UUrHdJXXAT4Ysq+RAn0CnuywtI7SzjiqI5gPIwIDAQABAoIBAD9vYnJY5x1h24+5
|
||||
T9AkVFn1AkPbWDNEY8gDn8EAIFv5C2JgujjsGXaGAmDkmgTVwk1KgIyMwgfTY52j
|
||||
gJmInzktzp8XA51l8fUnP1O13Fpet0yCERhaTuTeS/JQnX3yp0N70UVyZX9++TK5
|
||||
kZNCJqZYcxDVJ8GijGHA1U/pNp3GgIjqbdTrMISRA8MG8gb/zWWI6sDRASVWaWOS
|
||||
z41pU4xe32pbjOYaLX/zQY6hGIzOjQquO6USmkexXC1w4iAS7WP0nCTTHfMVx8rg
|
||||
R+A2xQElFwJt6aQI+heb21K4wiEoCRZPSHXuZKXcj+6H6wqpzpd0kgCCbbS7dcSL
|
||||
I5OyiwECgYEA8Hf/a73wQlly62OT3VC1nOKgAuNzWVThbnzzyFsjsdfVt/Am+SQX
|
||||
ORCrNvTfO8UHT8C7qFs4C9BSd/i0ZEWrli1l+ZO4N4EaOLcZYZ27cgBlNDf7BQpQ
|
||||
X1p9YoKSpu+3l8e7AUQ23qzbvLyi/sYqLc+tuhITDvHVYobO7yd4iIkCgYEA8FOo
|
||||
ksLiBeRKQvQT/goTB01IfPAnLHHLRAUtwd7dhXKZm/m4FQXVOBorslgXRVztaoS0
|
||||
Nm9CmTkuvkzMakw22IkqhsxOlRcD6TXMMT6H6k28tj3/knl+3QYGnJ7KE3Azs5+w
|
||||
JzJZJ+MRNXiKu1yNCxq+sXWoR84pnMMQNOJ110sCgYAqHmqPnZIynOZDEor4rcVR
|
||||
uGQcfWhb0kE2EA7HHiePY+WcNSUuaELlDOVgV92t42HXd0OnRmr3rsJzHw3Brm5S
|
||||
fJsq7tPKbQOBwZhhf7YwTp9rWQ7PoDHZscjac1JqiPxYSnSX0THnKNHIKiZGh8El
|
||||
iwW73KSX7oXYnxIp03kKOQKBgQCKTHpLyp5rKY6arP78SCvfHdhDHahNaUbB5AEK
|
||||
+gecjfBb0/7dCjhDSrwuq4bowatWivtx/+DhcAi4NlXELgu53GV+oP/vyAjWIcFZ
|
||||
7VQlv4qDjXYPgp9A7gDMDIzZVs5J5fFm/RBVZdQ3YyDi5UW9SCzIzp6Cg99qeM5Q
|
||||
wKlztQKBgDaulZ/cexv55N+5GjgU03wpBnDh8SlHfe/JYeKmMrihSgxxUSPGTkLo
|
||||
eosWBVHBrg4xHae4sFF+zbO0Z7EIbRYq9SX/Fh78OAH7PZe6byuESDv9tWPaNpuS
|
||||
DFe4sOJXyUFMTYpq6x/gNfafMmOXal9kBZXqbBEMMj8/rKIVokzU
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc/lfhE4VpWkc2
|
||||
gj5rj56krmBx9FHHICN2uivKNP8d1JBT0KcTbyXnOtSw/Hsllypuc039LqAlywgN
|
||||
KqCUpEsGAE9pvrn8zAm8cqijB+4bvnXjgOyBjlsy+gKpJMZfvsB2jVa9wSPCxiiX
|
||||
GINydKn0DxVlf+qNOBYd7z9KLaxoNrbMnjvefiprSr8O8ZchAO+JlzJzGQ8mChGk
|
||||
XDTegmZ1mwkYnfj5M3QA31eJnReA5AgoirxBdzsHL5hSvJ95zPgZhBP1/Qr2x9jd
|
||||
bRuSRnotb21q5lTc3f+evl+45TuJr4iE+inuXL70TqXIYdWLCpy59vP3nAFAlH0A
|
||||
TBskl21FAgMBAAECggEAJUEbP24zB1eYua+rJibH76sVxyAQySi50cIAr83PVBAJ
|
||||
ZJfAEp6iHSDlyhBGEkgxdv0pII1Dohtf+Bg/ic9IdnKG8KSeZedfnM0XcKRdl3+8
|
||||
D+Yj+JMu/KD44dq5NlrJxzJ8dPCiPqt5HD+dqSXRoLsKOFogCD50PAeg+7hHYCnI
|
||||
worCm6MoCD8Qps6ArmR/YRatAF0wPQxCTX+TRww12gbgWTFPl0ocETth0r3LQHtz
|
||||
jaOu/EtO87WXt1i3NjaRImLMnBytOPVUM0tLXGiAnXvfg39c8cyYUof2FbFO+kgT
|
||||
nK89NrlPWMUo6jGZyf4riVdcPqza/FH5IEv4ToLL4QKBgQD8ICRM9oLtBJKf+749
|
||||
auZbca25fSDfid/pSWaGB0VymJoETPfUMhKnrBi8uLcL0VJ6+I+kFmhZL/j3R5g3
|
||||
7D9NhJyfGDBJv3CfjK2L/zPCiESEnMt0IRiEcxaIX+K9SjfHwCam4XLsnDWNG49B
|
||||
WZ0onQNjY5IdYV7wsRMlBDmN6wKBgQDgY7qCUJVilRVX2TLOYgKIGaAb7QVVX9Bz
|
||||
wukPRD/OFoufZRltbhwWCDrDRVJZlRccpAq+cr6KXg9AKhbn2xc6aLG4vPWBgLB0
|
||||
P+QcR4lszRqqiM0yRUhOJSk3nFBtS7lsf80qTdP+Cz/M317/z7yqQNi92tNaHNLN
|
||||
sYmVrM61jwKBgQDuIznGS+xcDL6lR3Vns2nDI3twQOTk3uhUA5VHsOSCmeqXd095
|
||||
6JXAM4fl8R5LljmulsmttdB3tR0WC1SWNZmREVmR15n8fkrVGF3vZmuwKV92VlbA
|
||||
6GWs7LtysgaKvegzzqVzaGxRWjYmgsprckZDzxIdNTYUdBzlgItRokzuYwKBgG7Y
|
||||
9U7g7hsIGMYP9ug7RJLlTdHd0e+t6HT3SViQV5DAVHMGZ3xGk7tSj2zdduPoIcW1
|
||||
R9VzK6uA8bm50Rzyf1QMWhcvyXwTDZgv48kQkdPcspqh//Qgg6qO8wCUyKplaREv
|
||||
RTPrxJjQB9F2WyC2B7Z3WFrZmeT/LigM1zHIb0kDAoGABmrg8nXGBrEdtYXHFdem
|
||||
1iP0X3+Xt/RwH50YjsNNbUmngIbiR5q71vFkfM7UhIjlnKX/HfSTCUyCtLjHBIFh
|
||||
E/OHbEVgElbegnCx3uX4+kxP/oFGNh9t9fJAOsipaYrVVyQWK3C5ilrcBcx4jdXB
|
||||
c4cumeA0lZ2p1hc82ArHxYk=
|
||||
-----END PRIVATE KEY-----
|
||||
Loading…
Reference in New Issue