diff --git a/scripts/policy/protocols/ssl/expiring-certs.bro b/scripts/policy/protocols/ssl/expiring-certs.bro index ac1b159f1c..2cc1022998 100644 --- a/scripts/policy/protocols/ssl/expiring-certs.bro +++ b/scripts/policy/protocols/ssl/expiring-certs.bro @@ -36,7 +36,7 @@ export { event x509_certificate(c: connection, cert: X509, is_server: bool, chain_idx: count, chain_len: count, der_cert: string) &priority=3 { # If this isn't the host cert or we aren't interested in the server, just return. - if ( chain_idx != 0 || ! addr_matches_host(c$id$resp_h, notify_certs_expiration) ) + if ( ! c$ssl?$cert_hash || ! addr_matches_host(c$id$resp_h, notify_certs_expiration) ) return; if ( cert$not_valid_before > network_time() ) diff --git a/scripts/policy/protocols/ssl/known-certs.bro b/scripts/policy/protocols/ssl/known-certs.bro index 331ea388e5..ed670e4473 100644 --- a/scripts/policy/protocols/ssl/known-certs.bro +++ b/scripts/policy/protocols/ssl/known-certs.bro @@ -47,9 +47,7 @@ event bro_init() &priority=5 event x509_certificate(c: connection, cert: X509, is_server: bool, chain_idx: count, chain_len: count, der_cert: string) &priority=3 { # We aren't tracking client certificates yet. - if ( ! is_server ) return; - # We are also only tracking the primary cert. - if ( chain_idx != 0 ) return; + if ( ! c$ssl?$cert_hash ) return; local host = c$id$resp_h; if ( [host, c$ssl$cert_hash] !in certs && addr_matches_host(host, cert_tracking) )