|
|
@ -3,6 +3,9 @@ import os |
|
|
import requests |
|
|
import requests |
|
|
import datetime |
|
|
import datetime |
|
|
import json |
|
|
import json |
|
|
|
|
|
import OpenSSL |
|
|
|
|
|
import ssl |
|
|
|
|
|
import pytz |
|
|
|
|
|
|
|
|
app = Flask(__name__) |
|
|
app = Flask(__name__) |
|
|
|
|
|
|
|
|
@ -110,5 +113,30 @@ def api(): |
|
|
# time = now, |
|
|
# time = now, |
|
|
# status = status_string) |
|
|
# status = status_string) |
|
|
|
|
|
|
|
|
|
|
|
@app.route('/certdate/<name>/') |
|
|
|
|
|
def cert(name): |
|
|
|
|
|
apiToken = request.args.get('token') |
|
|
|
|
|
now = str(datetime.datetime.now()) |
|
|
|
|
|
now_date=datetime.datetime.now() |
|
|
|
|
|
if apiToken == token: |
|
|
|
|
|
cert=ssl.get_server_certificate((name, 443)) |
|
|
|
|
|
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert) |
|
|
|
|
|
bytes=x509.get_notAfter() |
|
|
|
|
|
timestamp_str = str(bytes.decode('utf-8')) |
|
|
|
|
|
date_string = str(datetime.datetime.strptime(timestamp_str, '%Y%m%d%H%M%S%z')) |
|
|
|
|
|
date = datetime.datetime.strptime(timestamp_str, '%Y%m%d%H%M%S%z') |
|
|
|
|
|
if date.replace(tzinfo=pytz.utc) > now_date.replace(tzinfo=pytz.utc): |
|
|
|
|
|
status_string = "OK" |
|
|
|
|
|
else: |
|
|
|
|
|
status_string = "Expired" |
|
|
|
|
|
else: |
|
|
|
|
|
status_string = ' wrong token' |
|
|
|
|
|
ip_addr = request.remote_addr |
|
|
|
|
|
out = '%s - Unauthorized from IP: %s' %(now, ip_addr) |
|
|
|
|
|
print (out) |
|
|
|
|
|
return jsonify ( |
|
|
|
|
|
time = now, |
|
|
|
|
|
date_valid = date_string, |
|
|
|
|
|
status = status_string) |
|
|
if __name__ == '__main__': |
|
|
if __name__ == '__main__': |
|
|
app.run(debug=True) |
|
|
app.run(debug=True) |