def getOneCertByDomain(datastore, domain): sql = """SELECT ssl_crt, ssl_key, ssl_private_passphrase, ssl_xid, ssl_dedicated_ip, ssl_domain_name, ssl_date_inserted, ssl_date_expires, ssl_internal_only FROM ATS_SSL_table WHERE ssl_domain_name = '%s' LIMIT 1""" % domain result = datastore.executeOne(sql) if result: xid = result[3] dedicated_ip = result[4] domain = result[5] if not xid: ssllog.log.main_logger.warning("XID not set in database. Skipping bad record for dedicated_ip:[%s] domain_name:[%s]" % \ (dedicated_ip, domain)) return None sslCert = SSLCert(domain, xid, dedicated_ip) sslCert.cert = result[0] sslCert.key = result[1] sslCert.passphrase = result[2] sslCert.date_inserted = result[6] sslCert.date_expires = result[7] sslCert.internal_only = result[8] sslCert.sanList = sslCert.hasSubjectAltNames() return sslCert else: return None
def getAllCerts(datastore): sslCertHash = {} sql = """SELECT ssl_crt, ssl_key, ssl_private_passphrase, ssl_xid, ssl_dedicated_ip, ssl_domain_name, ssl_date_inserted, ssl_date_expires, ssl_internal_only FROM ATS_SSL_table""" results = datastore.executeAll(sql) if results: for row in row: domain = row[5] xid = row[3] dedicated_ip = row[4] if not xid: ssllog.log.main_logger.warning("XID not set in database. Skipping bad record for dedicated_ip:[%s] domain_name:[%s]" % \ (dedicated_ip, domain)) continue sslCert = SSLCert(domain, xid, dedicated_ip) # row[0] is the ssl_idx - not needed sslCert.cert = row[0] sslCert.key = row[1] sslCert.passphrase = row[2] sslCert.date_inserted = row[6] sslCert.date_expires = row[7] sslCert.internal_only = row[8] sslCert.sanList = sslCert.hasSubjectAltNames() sslCertHash[xid] = sslCert return sslCertHash else: return None
def getOneCertByXID(datastore, xid): sql = """SELECT ssl_crt, ssl_key, ssl_private_passphrase, ssl_xid, ssl_dedicated_ip, ssl_domain_name, ssl_date_inserted, ssl_date_expires, ssl_internal_only FROM ATS_SSL_table WHERE ssl_xid = '%d' LIMIT 1""" % xid result = datastore.executeOne(sql) if result: domain = result[5] xid = result[3] dedicated_ip = result[4] sslCert = SSLCert(domain, xid, dedicated_ip) sslCert.cert = result[0] sslCert.key = result[1] sslCert.passphrase = result[2] sslCert.date_inserted = result[6] sslCert.date_expires = result[7] sslCert.internal_only = result[8] sslCert.sanList = sslCert.hasSubjectAltNames() sslCert.dumpExtensions() return sslCert else: return None
def getCertsNewerThanTimestamp(datastore, someTimestamp, limitStart, limitSize): sslCertHash = {} mySqlTimeStamp = someTimestamp.strftime('%Y-%m-%d %H:%M:%S') sql = """SELECT ssl_crt, ssl_key, ssl_private_passphrase, ssl_xid, ssl_dedicated_ip, ssl_domain_name, ssl_date_inserted, ssl_date_expires, ssl_internal_only FROM ATS_SSL_table WHERE ssl_date_inserted >= '%s' ORDER BY ssl_date_inserted LIMIT %d, %d""" % (mySqlTimeStamp, limitStart, limitSize) results = datastore.executeAll(sql) if results: for row in results: domain = row[5] xid = row[3] dedicated_ip = row[4] if not xid: ssllog.log.main_logger.warning("Skipping bad record for dedicated_ip:[%s] domain_name:[%s]" % \ (dedicated_ip, domain)) continue sslCert = SSLCert(domain, xid, dedicated_ip) sslCert.cert = row[0] sslCert.key = row[1] sslCert.passphrase = row[2] sslCert.date_inserted = row[6] sslCert.date_expires = row[7] sslCert.internal_only = row[8] sslCert.sanList = sslCert.hasSubjectAltNames() sslCertHash[xid] = sslCert # Lets keep track of our greatest timestamp and return that for use # next time as the starting timestamp thisTimestamp = sslCert.date_inserted if thisTimestamp > someTimestamp: someTimestamp = thisTimestamp return (sslCertHash, someTimestamp) else: return (None, None)