--AND x509_notBefore(c.CERTIFICATE) < '2018-04-02T00:00:00.000Z'SELECT ci.CERTIFICATE_ID, ci.ISSUER_CA_ID, ci.NAME_VALUE, x509_notBefore(c.CERTIFICATE) AS not_before, x509_notAfter(c.CERTIFICATE) AS not_after, x509_issuerName(c.CERTIFICATE) FROM certificate_identity ci, certificate c WHERE ci.CERTIFICATE_ID = c.ID AND lower(ci.NAME_VALUE) LIKE lower('bank%of%america%') AND ci.NAME_TYPE = 'commonName' --AND ci.ISSUER_CA_ID = 16418 AND x509_notBefore(c.CERTIFICATE) >= '2018-04-01T00:00:00.000Z' --AND x509_notBefore(c.CERTIFICATE) < '2018-04-02T00:00:00.000Z' LIMIT 5
The query identifies (possible) phishing sites.
The indexes appear to be in place according to schema
https://github.com/crtsh/certwatch_db/blob/master/create_schema.sql
CREATE INDEX c_ica_notbefore ON certificate (ISSUER_CA_ID, x509_notBefore(CERTIFICATE)); CREATE INDEX c_notbefore_ica ON certificate (x509_notBefore(CERTIFICATE), ISSUER_CA_ID);
I also tried to run GROUP BY ci.ISSUER_CA_ID queries to count the number of certificates issued by CA for a given date.
None of the queries complete.
Regards,
Sergei
AND CAST(x509_notBefore(c.CERTIFICATE) AS Date) = '2018-04-01'
SELECT ci.ISSUER_CA_ID AS ca_id, COUNT(*) AS cert_count
FROM certificate_identity ci, certificate c WHERE ci.CERTIFICATE_ID = c.ID
--AND lower(ci.NAME_VALUE) LIKE lower('bank%of%america%') AND ci.NAME_TYPE = 'commonName' AND CAST(x509_notBefore(c.CERTIFICATE) AS Date) = '2018-04-01' GROUP BY ci.ISSUER_CA_ID