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
return json.dumps(data)
def getObjectByJson(data):
import json
return json.loads(data)
def returnData(status, msg, data=None):
return {'status': status, 'msg': msg, 'data': data}

@ -14,6 +14,9 @@ goedge_addr = 'http://127.0.0.2:8009'
access_keyid = "xxx"
access_key = "xxx"
# 指定用户
userId = 1
sys.path.append(os.getcwd() + "/class/core")
import mw
@ -43,16 +46,39 @@ def commonReq(url, data):
headers = {
'X-Edge-Access-Token': token
}
api_url = goedge_addr+'/'+url
json_data = mw.getJson(data)
print(json_data)
resp_data = requests.post(api_url,json=json_data, headers=headers)
api_url = goedge_addr+url
resp_data = requests.post(api_url,json=data, headers=headers)
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'
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.base64StrEncode(cer_data)
# print('cer',cer_data)
@ -60,28 +86,49 @@ def createSSLCert(domain):
ssl_key_file = ssl_path + '/'+domain+'.key'
key_data = mw.readFile(ssl_key_file)
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 = {
"isOn":False,
# "userId":"0",
"name":"test",
"isCA":True,
"description":domain,
"serverName":domain,
"certData":cer_data,
'keyData':key_data,
'dnsNames':[domain,"*."+domain],
'commonNames':[domain,"*."+domain]
"isOn":True,
"userId":userId,
"name": "ACME泛域名自动上传",
"isCA":False,
"description":domain,
"serverName":domain,
"certData":cer_data,
'keyData':key_data,
"timeBeginAt":timeBeginAt,
"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
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)

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

Loading…
Cancel
Save