Esempio n. 1
0
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