pull/624/head
Mr Chen 8 months ago
parent 60910c9d87
commit 0e7ed65e04
  1. 3
      class/core/mw.py
  2. 91
      plugins/acme_pandominassl_apply/hooks/goedge.py
  3. 2
      plugins/acme_pandominassl_apply/index.py

@ -472,6 +472,9 @@ def getJson(data):
import json import json
return json.dumps(data) return json.dumps(data)
def getObjectByJson(data):
import json
return json.loads(data)
def returnData(status, msg, data=None): def returnData(status, msg, data=None):
return {'status': status, 'msg': msg, 'data': data} return {'status': status, 'msg': msg, 'data': data}

@ -14,6 +14,9 @@ goedge_addr = 'http://127.0.0.2:8009'
access_keyid = "xxx" access_keyid = "xxx"
access_key = "xxx" access_key = "xxx"
# 指定用户
userId = 1
sys.path.append(os.getcwd() + "/class/core") sys.path.append(os.getcwd() + "/class/core")
import mw import mw
@ -43,16 +46,39 @@ def commonReq(url, data):
headers = { headers = {
'X-Edge-Access-Token': token 'X-Edge-Access-Token': token
} }
api_url = goedge_addr+'/'+url api_url = goedge_addr+url
resp_data = requests.post(api_url,json=data, headers=headers)
json_data = mw.getJson(data)
print(json_data)
resp_data = requests.post(api_url,json=json_data, headers=headers)
return resp_data.json() return resp_data.json()
def listSSLCerts(domain):
request_data = {
"userId":userId,
"isCA":False,
"keyword": "ACME泛域名自动上传",
"domains":[domain,"*."+domain],
"size":1
}
# print(request_data)
response_data = commonReq('/SSLCertService/listSSLCerts', request_data)
data = response_data['data']['sslCertsJSON']
data = mw.base64StrDecode(data)
data = mw.getObjectByJson(data)
# print(data)
return data
# createSSLCert(domain)
def createSSLCert(domain, did=0):
def createSSLCert(domain):
ssl_cer_file = ssl_path + '/'+domain+'.cer' ssl_cer_file = ssl_path + '/'+domain+'.cer'
if not os.path.exists(ssl_cer_file):
print("没有有效证书!")
return ''
# print(ssl_cer_file)
ssl_info = mw.getCertName(ssl_cer_file)
cer_data = mw.readFile(ssl_cer_file) cer_data = mw.readFile(ssl_cer_file)
cer_data = mw.base64StrEncode(cer_data) cer_data = mw.base64StrEncode(cer_data)
# print('cer',cer_data) # print('cer',cer_data)
@ -60,28 +86,49 @@ def createSSLCert(domain):
ssl_key_file = ssl_path + '/'+domain+'.key' ssl_key_file = ssl_path + '/'+domain+'.key'
key_data = mw.readFile(ssl_key_file) key_data = mw.readFile(ssl_key_file)
key_data = mw.base64StrEncode(key_data) key_data = mw.base64StrEncode(key_data)
# print('key',key_data) # print('ssl_info',ssl_info)
return '' timeBeginAt = int(time.mktime(time.strptime(ssl_info['notBefore'], "%Y-%m-%d")))
timeEndAt = int(time.mktime(time.strptime(ssl_info['notAfter'], "%Y-%m-%d")))
request_data = { request_data = {
"isOn":False, "isOn":True,
# "userId":"0", "userId":userId,
"name":"test", "name": "ACME泛域名自动上传",
"isCA":True, "isCA":False,
"description":domain, "description":domain,
"serverName":domain, "serverName":domain,
"certData":cer_data, "certData":cer_data,
'keyData':key_data, 'keyData':key_data,
'dnsNames':[domain,"*."+domain], "timeBeginAt":timeBeginAt,
'commonNames':[domain,"*."+domain] "timeEndAt": timeEndAt,
'dnsNames':[domain,"*."+domain],
'commonNames':[ssl_info['issuer']]
} }
print(request_data)
response_data = commonReq('/SSLCertService/createSSLCert', request_data)
# print(response_data) if did>0:
request_data['sslCertId'] = did
# print(request_data)
response_data = commonReq('/SSLCertService/updateSSLCert', request_data)
print('更新成功',response_data)
return response_data
else:
# print(request_data)
response_data = commonReq('/SSLCertService/createSSLCert', request_data)
print('创建成功',response_data)
return response_data
return response_data return response_data
createSSLCert(domain) def autoSyncDomain(domain):
data = listSSLCerts(domain)
if len(data) > 0 :
did = data[0]['id']
createSSLCert(domain,did)
else:
createSSLCert(domain)
print(data)
autoSyncDomain(domain)
print(domain,ssl_path) print(domain,ssl_path)

@ -557,7 +557,7 @@ def runHook():
run_log = runLog() run_log = runLog()
cmd += ' >> '+ run_log cmd += ' >> '+ run_log
# print(cmd) print(cmd)
os.system(cmd) os.system(cmd)
hookWriteLog('结束申请【'+domain+'】SSL证书') hookWriteLog('结束申请【'+domain+'】SSL证书')
isok, path = domainApplyPathJudge(domain) isok, path = domainApplyPathJudge(domain)

Loading…
Cancel
Save