...
- ipahealthcheck.ipa.certs
Содержит набор проверок, связанных с сертификатами FreeIPA: контролирует срок действия сертификатов, проверяет целостность и корректность цепочки доверия, сверяет сертификаты в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базах и PEM-файлах, а также их соответствие записям в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].Раскрыть title Проверки в источнике ipahealthcheck.ipa.certs IPACertmongerExpirationCheck
Перебирает все ожидаемые запросы certmonger и проверяет срок действия сертификата, основываясь на информации, которой располагает certmonger. Если сертификат истекает в пределах cert_expiration_days (по умолчанию 28 дней), выдается предупреждение.
Истекший сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertmongerExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "expiration_date": "20160101001704Z", "msg": "Request id 1234 expired on 20160101001704Z" } }Сертификат, истекающий скоро:
Блок кода title json { "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 устарели по сравнению с сертификатом, находящимся на диске.
Если файл сертификата не может быть открыт:
Блок кода title json { "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]" } }Если FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-база не может быть открыта:
Блок кода title json { "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]" } }Если отслеживаемый никнейм не найден в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе:
Блок кода title json { "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]" } }Истекший сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertfileExpirationCheck", "result": "ERROR", "kw": { "key": 1234, "expiration_date", "20160101001704Z", "msg": "Request id 1234 expired on 20160101001704Z" } }Сертификат, истекающий скоро:
Блок кода title json { "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).
Сертификат, истекающий скоро:
Блок кода title json { "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
Сравнивает информацию отслеживания сертификатов, полученную от FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], с ожидаемыми значениями. Результат показывает ошибку, если какая-либо часть отслеживания отсутствует или отличается от ожидаемой.
Предупреждение title Важно! По умолчанию FreeIPA на Astra Linux развёртывается без полноценного CA — генерируются только самоподписные сертификаты. Генерируется ключевая пара CA (создаются закрытый ключ и самоподписанный сертификат открытого ключа), остальные сертификаты формируются через CSR и подписываются этим закрытым ключом CA, а их проверка выполняется по самоподписанному сертификату CA.
Поскольку в системе отсутствует как внутренний (DogTag), так и внешний CA, проверка IPACertTracking всегда будет завершаться с ERROR. Для исправления нужно начать отслеживать сертификат вручную, подробнее см. Отслеживаемый сертификат.Если отслеживание отсутствует:
Блок кода title json { "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_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_ra_cert" } }Если отслеживается неизвестный сертификат:
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertTracking", "result": "WARNING", "kw": { "key": 1234, "msg": "Unknown certmonger id 1234' } }IPACertNSSTrust
Сравнивает настройки доверия для сертификатов, хранящихся в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, с известным корректным состоянием.
Блок кода title json { "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 совпадают с данными, полученными из FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базы (или файла).
Блок кода title json { "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, присутствующие как в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базе, так и в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
Блок кода title json { "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
Информация title Справка Команда"certutil -V -u V -e -d [dbdir] -n [nickname]"проверяет указанный сертификат на валидность цепочки доверия и корректность подписи из NSS-базы.
-d [dbdir] и -n [nickname] — путь к базе и её псевдоним.
-V -u V -e — валидация по дате/флагам доверия и проверка подписи.Проверяет цепочку сертификатов, полученных из FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-базы. Выполняется команда "certutil -V -u V -e -d [dbdir] -n [nickname]".
Блок кода title json { "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
Информация title Справка Команда "openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem" проверяет цепочку доверия для сертификата /path/to/cert.pem, используя доверенный FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-файл /etc/ipa/ca.crt.
Проверяет цепочку сертификатов для файлов OpenSSL. Выполняется команда "openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt /path/to/cert.pem".
Блок кода title json { "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-агента в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
Блок кода title json { "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 для FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]-агента в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК].
Блок кода title json { "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 для определения списка сертификатов, подлежащих проверке.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertRevocation", "result": "ERROR", "kw": { "key": 1234, "revocation_reason": "superseded", "msg": "Certificate is revoked, superseded" } }IPACertmongerCA
Проверяет корректность конфигурации CA в FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], анализируя настройки dogtag-ipa-ca-renew-agent и dogtag-ipa-ca-renew-agent-reuse.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertmongerCA", "result": "ERROR", "kw": { "key": "dogtag-ipa-ca-renew-agent", "msg": "Certmonger CA 'dogtag-ipa-ca-renew-agent' missing" } }IPACertDNSSAN
Проверяет, что во всех действующих заявках certmonger на серверные сертификаты профиля caIPAserviceCert для CA присутствует FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК]‑Subject Alt Name, совпадающий с FQDN текущего хоста.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "IPACertDNSSAN", "result": "ERROR", "uuid": "431c42c0-9396-4593-ad2b-09b40298ba1f", "when": "20240416115958Z", "duration": "0.904624", "kw": { "key": "20240318110910", "hostname": "ipa-ca.example.com", "san": [ "ipa02.example.com" ], "ca": "IPA", "profile": "caIPAserviceCert", "msg": "Certificate request id {key} with profile {profile} for CA {ca} does not have a DNS SAN {san} matching name {hostname}" } }CertmongerStuckCheck
Ищет заявки FreeIPA Health Check. Обзор функциональных возможностей. [ЧЕРНОВИК], у которых статус stuck = true, и оповещает об «застрявших» запросах.
Блок кода title json { "source": "ipahealthcheck.ipa.certs", "check": "CertmongerStuckCheck", "result": "WARNING", "uuid": "d32781d5-09e7-4d52-89f1-57eca541e9e4", "when": "20230407120255Z", "duration": "0.019584", "kw": { "key": "20230407091205", "msg": "certmonger request {key} is in the stuck state" } }
...