Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • ipahealthcheck.ipa.certs
    Содержит набор проверок, связанных с сертификатами FreeIPA: от контроля срока действия, проверки цепочки доверия до сравнения сертификатов, а также отслеживания их состояния с помощью certmonger.
    Раскрыть

    IPACertmongerExpirationCheck

    Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение.

    Истекший сертификат:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertmongerExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "expiration_date": "20160101001704Z",
        "msg": "Request id 1234 expired on 20160101001704Z"
      }
    }

    Сертификат, истекающий скоро:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertmongerExpirationCheck",
      "result": "WARNING",
      "kw": {
        "key": 1234,
        "expiration_date": "20160101001704Z",
        "days": 9,
        "msg": "Request id 1234 expires in 9 days"
      }
    }

    IPACertfileExpirationCheck

    Похожа на IPACertmongerExpirationCheck, но сертификат извлекается из PEM-файла или базы NSS и повторно проверяется. Это используется в случае, если сведения certmonger устарели по сравнению с сертификатом, находящимся на диске.

    Если файл сертификата не может быть открыт:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "certfile": "/path/to/cert.pem",
        "error": [error],
        "msg": "Unable to open cert file '/path/to/cert.pem': [error]"
      }
    }

    Если NSS-база не может быть открыта:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "dbdir": "/path/to/nssdb",
        "error": [error],
        "msg": "Unable to open NSS database '/path/to/nssdb': [error]"
      }
    }

    Если отслеживаемый никнейм не найден в NSS-базе:

    Блок кода
    titlejson
     {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "dbdir": "/path/to/nssdb",
        "nickname": [nickname],
        "error": [error],
        "msg": "Unable to retrieve cert '[nickname]' from '/path/to/nssdb': [error]"
      }
    }

    Истекший сертификат:

    Блок кода
    titlejson
     {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "ERROR",
      "kw": {
        "key": 1234,
        "expiration_date", "20160101001704Z",
        "msg": "Request id 1234 expired on 20160101001704Z"
      }
    }

    Сертификат, истекающий скоро:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACertfileExpirationCheck",
      "result": "WARNING",
      "kw": {
        "key": 1234,
        "expiration_date", "20160101001704Z",
        "days": 9,
        "msg": "Request id 1234 expires in 9 days"
      }
    }

    IPACAChainExpirationCheck

    Загружает цепочку сертификатов из файла /etc/ipa/ca.crt и проверяет срок действия каждого сертификата в цепочке. Это тест, предназначенный для подтверждения валидности всей цепочки доверия (включая случаи, когда сертификаты веб-сервера или LDAP были заменены, а цепочка находится в /etc/ipa/ca.crt).

    Сертификат, истекающий скоро:

    Блок кода
    titlejson
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACAChainExpirationCheck",
      "result": "WARNING",
      "kw": {
        "path": "/etc/ipa/ca.crt",
        "key": "CN=Certificate Authority,O=EXAMPLE.TEST",
        "days": 2,
        "msg": "CA '{key}' is expiring in {days} days."
      }
    }

    Истекший сертификат:

    Блок кода
    {
      "source": "ipahealthcheck.ipa.certs",
      "check": "IPACAChainExpirationCheck",
      "result": "WARNING",
      "kw": {
        "path": "/etc/ipa/ca.crt",
        "key": "CN=Certificate Authority,O=EXAMPLE.TEST",
        "days": 2,
        "msg": "CA '{key}' is expiring in {days} days."
      }
    }

    IPACertTracking

    Сравнивает информацию отслеживания (tracking) сертификатов, полученную от certmonger, с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.

    Если отслеживание отсутствует:

    Блок кода
    titlejson
    Копировать
    {
     
    {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPACertTracking",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "key": "cert-file=/var/lib/ipa/ra-agent.pem, key-file=/var/lib/ipa/ra-agent.key, ca-name=dogtag-ipa-ca-renew-agent, cert-storage=FILE, cert-presave-command=/usr/libexec/ipa/certmonger/renew_ra_cert_pre,  cert-postsave-command=/usr/libexec/ipa/certmonger/renew_
    ca
    ra_cert"
    ,
       
    
        "msg": "Missing tracking for cert-file=/var/lib/ipa/ra-agent.pem, key-file=/var/lib/ipa/ra-agent.key, ca-name=dogtag-ipa-ca-renew-agent, cert-storage=FILE, cert-presave-command=/usr/libexec/ipa/certmonger/renew_ra_cert_pre,  cert-postsave-command=/usr/libexec/ipa/certmonger/renew_
    ca
    ra_cert"

      }
    
      }
    }

    Если отслеживается неизвестный сертификат:json

    Блок кода
    Копировать
    title
    {
     
    json
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPACertTracking",

     
    
      "result": "WARNING",

     
    
      "kw":
    {
       
     {
        "key": 1234,

       
    
        "msg": "Unknown certmonger id
    1234"
      }
     1234'
      }
    }

    IPACertNSSTrust

    Сравнивает настройки доверия для сертификатов, хранящихся в NSS-базе, с известным корректным состоянием.

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPACertNSSTrust",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "key": "auditSigningCert cert-pki-ca",

       
    
        "expected": "u,u,Pu",

       
    
        "got": "u,u,u",

       
    
        "nickname": "auditSigningCert cert-pki-ca",

       
    
        "dbdir": "/etc/pki/pki-tomcat/alias",

       
    
        "msg": "Incorrect NSS trust for auditSigningCert cert-pki-ca. Got u,u,u expected u,u,Pu"

      }
    
      }
    }

    IPACertMatchCheck

    Удостоверяется, что записи сертификата ЦС CA в LDAP совпадают с данными, полученными из NSS-базы (или файла).

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPACertMatchCheck",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "msg": "CA Certificate from /etc/ipa/nssdb does not match /etc/ipa/ca.crt"

      }
    
      }
    }

    IPADogtagCertsMatchCheck

    Проверяет, совпадают ли сертификаты Dogtag, присутствующие как в NSS-базе, так и в LDAP.

    Блок кода
    titlejson

    Копировать
     {

     
    
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPADogtagCertsMatchCheck",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "msg": "'subsystemCert cert-pki-ca' certificate in NSS DB does not match entry in LDAP"

      }
    
      }
    }

    IPANSSChainValidation

    Валидирует Проверяет цепочку сертификатов, полученных из NSS-базы. Выполняется команда certutil -V -u V -e -d [dbdir] -n [nickname].

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPANSSChainValidation",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "key": "/etc/dirsrv/slapd-EXAMPLE-TEST:Server-Cert",

       
    
        "nickname": "Server-Cert",

       
    
        "dbdir":
    "
     [path to NSS database]
    ",
       
    ,
        "reason": "certutil: certificate is invalid: Peer's Certificate issuer is not recognized.\n: ",

       
    
        "msg": "
    \
    "Validation of Server-Cert in /etc/dirsrv/slapd-EXAMPLE-TEST/ failed: certutil: certificate is invalid: Peer's Certificate issuer is not recognized.\n
    \""
      }
     "
      }
    }

    IPAOpenSSLChainValidation

    Валидирует Проверяет цепочку сертификатов для файлов OpenSSL. Выполняется команда openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem.

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPAOpenSSLChainValidation",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "key": "/var/lib/ipa/ra-agent.pem",

       
    
        "reason": "O = EXAMPLE.TEST, CN = IPA RA\nerror 20 at 0 depth lookup: unable to get local issuer certificate\n",

       
    
        "msg": "Certificate validation for /var/lib/ipa/ra-agent.pem failed: O = EXAMPLE.TEST, CN = IPA RA\nerror 20 at 0 depth lookup: unable to get local issuer certificate\n"

      }
    
      }
    }

    IPARAAgent

    Проверяет соответствие описания и значения атрибута userCertificate для RA-агента в LDAP.

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPARAAgent",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "expected": "2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",

       
    
        "got": "2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",

       
    
        "msg": "RA agent description does not match. Found 2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST in LDAP and expected 2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST"

      }
    
      }
    }

    IPAKRAAgent

    Проверяет соответствие описания и значения атрибута userCertificate для KRA-агента в LDAP.

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPAKRAAgent",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "expected": "2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",

       
    
        "got": "2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST",

       
    
        "msg": "KRA agent description does not match. Found 2;7;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST in LDAP and expected 2;125;CN=Certificate Authority,O=EXAMPLE.TEST;CN=IPA RA,O=EXAMPLE.TEST"

      }
    
      }
    }

    IPACertRevocation

    Подтверждает, что сертификаты IPA не отозваны, используя отслеживание certmonger для определения списка сертификатов, подлежащих проверке.

    Блок кода
    titlejson
    Копировать
    {
     
     {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPACertRevocation",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "key": 1234,

       
    
        "revocation_reason": "superseded",

       
    
        "msg": "Certificate is revoked, superseded"

      }
    
      }
    }

    IPACertmongerCA

    Проверяет корректность конфигурации CA в certmonger, анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.

    Блок кода
    titlejson
    Копировать
    {
     
    {
      "source": "ipahealthcheck.ipa.certs",

     
    
      "check": "IPACertmongerCA",

     
    
      "result": "ERROR",

     
    
      "kw":
    {
       
     {
        "key": "dogtag-ipa-ca-renew-agent",

       
    
        "msg": "Certmonger CA 'dogtag-ipa-ca-renew-agent' missing"

      }
    
      }
    }
  • ipahealthcheck.ipa.dna
    Отвечает за проверку диапазона DNA (Domain Number Allocation), который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.
    Раскрыть


...