summaryrefslogtreecommitdiff
path: root/monitor/josef_reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/josef_reader.py')
-rwxr-xr-xmonitor/josef_reader.py67
1 files changed, 44 insertions, 23 deletions
diff --git a/monitor/josef_reader.py b/monitor/josef_reader.py
index 92bd510..c1ff10c 100755
--- a/monitor/josef_reader.py
+++ b/monitor/josef_reader.py
@@ -15,6 +15,34 @@ from monitor_conf import DB_PATH
+class monitored_domain:
+ def __init__(self, url):
+ self.url = url
+ self.entries = []
+
+ def add(self, item):
+ self.entries.appent(item)
+
+class monitored_entry:
+ def __init__(self, subject, issuer, log, status):
+ self.issuer = issuer
+ self.subject = subject
+ self.log = log
+ self.status = status
+
+
+ def __str__(self):
+ s = self.subject + \
+ " certified by " + self.issuer + \
+ " (" + self.log + ") "
+ if self.status:
+ return "(VALID) " + s
+ else:
+ return "(NOT VALID) " + s
+
+
+
+
parser = argparse.ArgumentParser(description="")
parser.add_argument('--domain', default=None)
parser.add_argument('--log', default=None)
@@ -24,11 +52,10 @@ parser.add_argument('--get-cert', action='store_true')
args = parser.parse_args()
monitored_domains = [
- "google.com",
- "preishelden.de",
- "liu.se",
- "nordu.net",
- "symantec.com",
+ monitored_domain("*.preishelden.de"),
+ monitored_domain("*.liu.se"),
+ monitored_domain("*.kth.se"),
+ monitored_domain("*.nordu.net"),
]
db = DB_PATH
@@ -36,7 +63,7 @@ db = DB_PATH
def db_monitor_domain(domain, log=None, exclude_invalid=None, get_cert=None):
- print domain
+ # print domain
raw = db_lookup_domain(db, domain)
cur_time = dt.now()
@@ -44,6 +71,7 @@ def db_monitor_domain(domain, log=None, exclude_invalid=None, get_cert=None):
count_expired = 0
count_not_yet_valid = 0
count_all = 0
+ res = []
for item in raw:
try:
entry = ast.literal_eval(item)
@@ -87,35 +115,28 @@ def db_monitor_domain(domain, log=None, exclude_invalid=None, get_cert=None):
# Print matching
if success:
- s = entry["subject"].split("CN=")[1] + \
- " certified by " + entry["issuer"].split("CN=")[1] + \
- " (" + entry["log"] + ") "
- if valid:
- print "(VALID) " + s
- else:
- print "(NOT VALID) " + s
+ me = monitored_entry(entry["subject"].split("CN=")[1], entry["issuer"].split("CN=")[1], entry["log"],valid)
+ print str(me)
if get_cert:
print get_full_cert(entry)
+ res.append(me)
print str(count_all) + " matches found. " \
+ str(count_valid) + " valid, " \
+ str(count_expired) + " expired and " \
- + str(count_not_yet_valid) + " not yet valid."
+ + str(count_not_yet_valid) + " not yet valid for " \
+ + domain
+ return res
if args.domain:
- # if args.log:
- # log = args.log
- # else:
- # log = None
- # d = args.domain
- db_monitor_domain(args.domain)
- # db_monitor_domain(args.domain, args.log, args.exclude_invalid, args.get_cert)
+ db_monitor_domain(args.domain, args.log, args.exclude_invalid, args.get_cert)
else:
- print "No domain selected!"
- sys.exit()
+ print "Running on " + str(len(monitored_domains)) + " monitored domains."
+ for d in monitored_domains:
+ db_monitor_domain(d.url, args.log, args.exclude_invalid, args.get_cert)