def get_cert_info(cert: crypto.X509, host): """Get all the information about cert""" context = {} if not cert: return context cert_subject = cert.get_subject() context['issued_to'] = cert_subject.CN # common name context['issued_o'] = cert_subject.O # organization name context['issuer_o'] = cert.get_issuer().O context['cert_valid'] = False if cert.has_expired() else True context['self_signed'] = True if context['issuer_o'] == context[ 'issued_o'] else False # Prometheus metrics if context['cert_valid']: if context['self_signed']: counter.labels(endpoint=host, check='valid', self_signed='yes').inc() else: counter.labels(endpoint=host, check='valid', self_signed='no').inc() else: counter.labels(endpoint=host, check='not valid', self_signed='n/a').inc() return context