使用 IdM Healthcheck 监控 IdM 环境


Red Hat Enterprise Linux 9

执行状态和健康检查

Red Hat Customer Content Services

摘要

ipa-healthcheck 工具可帮助管理员检测 Red Hat Identity Management (IdM)环境中的问题。这包括对 IdM 服务、配置文件权限、复制状态和证书问题的状态检查。

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 登录到 Jira 网站。
  2. 在顶部导航栏中点 Create
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您的改进建议。包括文档相关部分的链接。
  5. 点对话框底部的 Create

第 1 章 安装并运行 IdM Healthcheck 工具

了解有关 IdM Healthcheck 工具以及如何安装和运行它的更多信息。

1.1. IdM 中的 Healthcheck

Identity Management (IdM)中的 Healthcheck 命令行工具可帮助查找可能会影响 IdM 环境性能的问题。使用 Healthcheck,您可以预先识别问题,以便在它成为关键状态前更正它。

注意

您可以在不获取 Kerberos ticket 的情况下使用 Healthcheck。

模块是独立的

Healthcheck 由独立的模块组成,用于检查:

  • 复制问题
  • 证书有效期
  • 证书颁发机构基础架构问题
  • IdM 和 Active Directory 信任问题
  • 正确的文件权限和所有权设置

输出格式和目的地

您可以使用 output-type 选项为 Healthcheck 设置以下类型的输出类型:

  • JSON :JSON 格式的机器可读输出(默认)
  • human:人类可读的输出

您可以使用-- output-file 选项指定存储输出的文件。

结果

每个 Healthcheck 模块返回以下结果之一:

SUCCESS
该系统按预期配置。
WARNING
建议您监控或评估配置。
ERROR
该系统没有按预期配置。
CRITICAL
配置不如预期,可能会影响 IdM 部署的功能。

1.2. 安装 IdM Healthcheck

了解如何安装 IdM Healthcheck 工具。

先决条件

  • root 身份登录。

流程

  • 安装 ipa-healthcheck 软件包:

    [root@server ~]# dnf install ipa-healthcheck

验证

  • 执行基本 Healthcheck 测试:

    [root@server ~]# ipa-healthcheck
    []

    空方括号 [] 表示 IdM 安装的功能。

1.3. 运行 IdM Healthcheck

您可以使用以下方法之一执行 Healthcheck 测试:

本节论述了如何手动执行测试。

先决条件

流程

  1. [可选] 要显示所有可用 Healthcheck 测试列表,请输入:

    [root@server ~]# ipa-healthcheck --list-sources
  2. 要运行 Healthcheck 工具,请输入:

    [root@server ~]# ipa-healthcheck

1.4. 日志轮转

日志轮转每日创建新的日志文件,并且按日期组织这些文件。该日期包含在文件名中。

使用日志轮转,您可以配置要存储的日志文件的最大数量。如果超过这个数字,最新的文件会替换最旧的文件。例如,如果最大轮转号为 30irty,则第三十优先日志文件将替换第一个,这是最旧的日志文件。

日志轮转会减少大量日志文件并组织它们。这有助于您分析日志。

1.5. 在调度上运行 IdM Healthcheck

按照以下步骤将 IdM Healthcheck 配置为按调度运行。这包括配置以下工具:

  • 定期运行 Healthcheck 工具的 systemd 计时器并生成日志。
  • 用于确保日志轮转的 crond 服务。

默认的日志名是 healthcheck.log,轮转的日志使用 healthcheck.log-YYYYMMDD 格式。

注意

Healthcheck 计时器工具不是实时工具。它仅用于在一小时内运行。如果您需要实时监控服务或磁盘空间,请使用不同的工具。

先决条件

  • 您有 root 特权。

流程

  1. 启用 systemd 计时器:

    # systemctl enable ipa-healthcheck.timer
    Created symlink /etc/systemd/system/multi-user.target.wants/ipa-healthcheck.timer -> /usr/lib/systemd/system/ipa-healthcheck.timer.
  2. 启动 systemd 计时器:

    # systemctl start ipa-healthcheck.timer
  3. 打开 /etc/logrotate.d/ipahealthcheck 文件,以配置您要保存的日志数:

    [...]
        rotate 30
    }

    默认情况下,在日志被较新的日志覆盖前,日志会存储 30 天。

  4. 在同一文件中,配置存储日志的文件的路径。

    /var/log/ipa/healthcheck/healthcheck.log {
    [...]

    默认情况下,日志保存在 /var/log/ipa/healthcheck/ 目录中。

  5. 保存该文件。
  6. 确保 crond 服务已启用并正在运行:

    # systemctl enable crond
    # systemctl start crond
  7. 要开始生成日志,启动 IdM healthcheck 服务:

    # systemctl start ipa-healthcheck

验证

  1. 进入 /var/log/ipa/healthcheck/ 目录。
  2. 显示日志文件的内容,以检查它是否已正确创建。

1.6. IdM Healthcheck 配置修改

您可以通过在 /etc/ipahealthcheck/ipahealthcheck.conf 文件中添加所需的命令行选项来更改身份管理(IdM) Healthcheck 设置。例如,这在之前配置了日志轮转时很有用,现在希望确保日志采用适合自动分析的格式,但不想设置新的计时器。

注意

此 Healthcheck 功能仅适用于 RHEL 9.1 或更新版本。

在修改后,Healthcheck 创建的所有日志遵循新的设置。这些设置也应用到健康检查的任何手动执行。

注意

手动运行 Healthcheck 时,配置文件中的设置优先于命令行中指定的选项。例如,如果在配置文件中将 output_type 设置为 human,则在命令行中指定 json 不起作用。您用来在配置文件中指定的任何命令行选项都会正常应用。

1.7. 配置 Healthcheck 以更改输出日志格式

按照以下步骤,使用已配置的计时器配置 Healthcheck。在本例中,您重新配置 Healthcheck 以人类可读的格式开始生成日志,并包括成功结果而不是仅错误。

先决条件

  • 您的系统正在运行 RHEL 9.1 或更高版本。
  • 您有 root 特权。
  • 您之前已在计时器中配置了日志轮转。

流程

  1. 在文本编辑器中打开 /etc/ipahealthcheck/ipahealthcheck.conf 文件。
  2. 将选项 output_type=humanall=True 添加到 [default] 部分。
  3. 保存并关闭该文件。

验证

  1. 手动运行 Healthcheck:

    # ipa-healthcheck
  2. 进入 /var/log/ipa/healthcheck/,检查日志是否采用正确的格式。

第 2 章 使用 IdM Healthcheck 检查服务

您可以使用 Healthcheck 工具监控身份管理(IdM)服务器使用的服务。

2.1. IdM 服务 Healthcheck 测试

Healthcheck 工具包含一个测试,用于检查身份管理(IdM)服务是否正确运行。从这个 Healthcheck 测试启动,因为未正确运行的 IdM 服务可能会导致其他 Healthcheck 测试失败。

根据配置的功能,服务测试是特定于上下文的。例如,只有在 IdM 服务器上配置了集成的 IdM DNS 服务时,才会检查 named。其他,如 smbwinbind,只有在启用了 IdM-AD 信任时才会检查。

测试评估的 IdM 服务列表如下:

  • certmonger
  • dirsrv
  • gssproxy
  • httpd
  • ipa_custodia
  • ipa_otpd
  • kadmin
  • krb5kdc
  • named
  • ods_enforcerd
  • ipa_dnskeysyncd
  • pki_tomcatd
  • sssd
  • chronyd
  • smb
  • winbind

您可以通过运行 ipa-healthcheck --list-sources 命令并识别输出中的 ipahealthcheck.meta.services 部分来查看此列表。

2.2. 使用 Healthcheck 进行 IdM 服务

按照以下步骤,使用 Healthcheck 工具运行在身份管理(IdM)服务器上运行的服务的独立手动测试。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.meta.services
    • the- source=ipahealthcheck.meta.services 选项可确保 IdM Healthcheck 仅执行服务测试。
    • 默认情况下启用 --failures-only 选项,它可确保 IdM Healthcheck 仅报告警告、错误和严重问题。

    成功测试显示空的括号:

    [ ]

    如果其中一个服务失败,则结果可能会和本例类似:

    {
      "source": "ipahealthcheck.meta.services",
      "check": "httpd",
      "result": "ERROR",
      "kw": {
        "status": false,
        "msg": "httpd: not running"
      }
    }
    注意

    当尝试发现问题时,在所有 IdM 服务器中运行这个测试。

第 3 章 使用 IdM Healthcheck 检查磁盘空间

您可以使用 Healthcheck 工具监控身份管理服务器的可用磁盘空间。

3.1. 磁盘空间健康检查测试

Healthcheck 工具包括 FileSystemSpaceCheck 测试,用于检查可用磁盘空间。测试会检查以下内容:

  • 需要最少的原始可用字节。
  • 最小磁盘空间的百分比为 20%。

测试检查以下路径:

Expand
表 3.1. 测试的路径
测试检查的路径最小磁盘空间(以 MB 为单位)

/var/lib/dirsrv/

1024

/var/lib/ipa/backup/

512

/var/log/

1024

var/log/audit/

512

/var/tmp/

512

/tmp/

512

可用磁盘空间不足可能会导致以下问题:

  • 日志
  • 执行
  • 备份

您可以通过运行 ipa-healthcheck --list-sources 命令并识别输出中的 ipahealthcheck.system.filesystemspace 部分来查找 FileSystemSpaceCheck 测试。

3.2. 使用 Healthcheck 工具强制磁盘空间

按照以下流程,使用 Healthcheck 工具在身份管理(IdM)服务器上运行可用磁盘空间的独立的手动测试。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.system.filesystemspace
    • the- source=ipahealthcheck.meta.services 选项可确保 IdM Healthcheck 仅执行磁盘空间测试。

成功测试显示空的括号:

[]

例如,无法显示失败的测试:

{
  "source": "ipahealthcheck.system.filesystemspace",
  "check": "FileSystemSpaceCheck",
  "result": "ERROR",
  "kw": {
    "msg": "/var/lib/dirsrv: free space under threshold: 0 MiB < 1024 MiB",
    "store": "/var/lib/dirsrv",
    "free_space": 0,
    "threshold": 1024
  }
}

此失败的测试会通知您 /var/lib/dirsrv 目录中没有可用的空间。

注意

当尝试发现问题时,在所有 IdM 服务器中运行这个测试。

了解如何使用 Healthcheck 工具测试身份管理(IdM)配置文件。

4.1. 文件权限 Healthcheck 测试

Healthcheck 工具测试由 Identity Management (IdM)安装或配置的文件的所有权和权限。

如果您更改了这些文件的所有权或权限,测试会在 result 部分中返回警告。虽然这不一定意味着配置不起作用,但这意味着文件与默认配置不同。

您可以在 ipa-healthcheck --list-sources 命令的输出的 ipahealthcheck.ipa.files 源中找到文件权限测试。

IPAFileNSSDBCheck
如果相关,此测试会检查 389-ds NSS 数据库和证书颁发机构(CA)数据库。389-ds 数据库位于 /etc/dirsrv/slapd-<dashed-REALM>,CA 数据库位于 /etc/pki/pki-tomcat/alias/ 中。
IPAFileCheck

此测试会检查以下文件:

  • /var/lib/ipa/ra-agent.{key|pem}
  • /var/lib/ipa/certs/httpd.pem
  • /var/lib/ipa/private/httpd.key
  • /etc/httpd/alias/ipasession.key
  • /etc/dirsrv/ds.keytab
  • /etc/ipa/ca.crt
  • /etc/ipa/custodia/server.keys
  • /etc/resolv.conf
  • /etc/hosts

    如果启用了 PKINIT,它也测试:

  • /var/lib/ipa/certs/kdc.pem
  • /var/lib/ipa/private/kdc.key

    如果配置了 DNS,它也会测试:

  • /etc/named.keytab
  • /etc/ipa/dnssec/ipa-dnskeysyncd.keytab
TomcatFileCheck

此测试会检查某些特定于 tomcat的文件:

  • /etc/pki/pki-tomcat/password.conf
  • /var/lib/pki/pki-tomcat/conf/ca/CS.cfg
  • /etc/pki/pki-tomcat/server.xml

4.2. 使用 Healthcheck 检查配置文件

按照以下流程,使用 Healthcheck 工具对身份管理(IdM)服务器配置文件运行独立的手动测试。

Healthcheck 工具包括多个测试。可以通过以下方法缩小结果:

  • 仅包含所有者和权限测试 :-- source=ipahealthcheck.ipa.files

流程

  1. 要在 IdM 配置文件所有权和权限上运行 Healthcheck 测试,同时只显示警告、错误和严重问题,请输入:

    # ipa-healthcheck --source=ipahealthcheck.ipa.files

成功测试显示空的括号:

# ipa-healthcheck --source=ipahealthcheck.ipa.files
[]

失败测试显示类似如下的 WARNING

{
  "source": "ipahealthcheck.ipa.files",
  "check": "IPAFileNSSDBCheck",
  "result": "WARNING",
  "kw": {
    "key": "_etc_dirsrv_slapd-EXAMPLE-TEST_pkcs11.txt_mode",
    "path": "/etc/dirsrv/slapd-EXAMPLE-TEST/pkcs11.txt",
    "type": "mode",
    "expected": "0640",
    "got": "0666",
    "msg": "Permissions of /etc/dirsrv/slapd-EXAMPLE-TEST/pkcs11.txt are 0666 and should be 0640"
  }
}
注意

当尝试查找问题时,在所有 IdM 服务器中运行这些测试。

第 5 章 使用 IdM Healthcheck 检查 DNS 记录

您可以使用 Healthcheck 工具识别身份管理(IdM)中 DNS 记录的问题。

5.1. DNS 记录健康检查

Healthcheck 工具包括 IPADNSSystemRecordsCheck 测试,用于检查自动发现所需的预期 DNS 记录是否可以解析。具体来说,测试会使用您登录的 IdM 服务器上的 /etc/resolv.conf 文件中指定的第一个解析器检查 ipa dns-update-system-records --dry-run 命令获取的 DNS 记录。

您可以在 ipa-healthcheck --list-sources 命令的输出的 ipahealthcheck.ipa.idns 源下找到 IPADNSSystemRecordsCheck 测试。

5.2. 使用 Healthcheck 工具建立 IdM DNS 记录

按照以下步骤,使用 Healthcheck 工具在身份管理(IdM)服务器上运行 DNS 记录独立手动测试。

Healthcheck 工具包括多个测试。通过添加 --source ipahealthcheck.ipa.idns 选项,可以仅包含 DNS 记录测试来缩小结果。

先决条件

  • 您有 root 特权。

流程

  • 输入:

    # ipa-healthcheck --source ipahealthcheck.ipa.idns
    • --source ipahealthcheck.ipa.idns 选项可确保 IdM Healthcheck 仅执行 DNS 记录测试。

      如果可解析记录,则测试会返回 SUCCESS

      {
          "source": "ipahealthcheck.ipa.idns",
          "check": "IPADNSSystemRecordsCheck",
          "result": "SUCCESS",
          "uuid": "eb7a3b68-f6b2-4631-af01-798cac0eb018",
          "when": "20200415143339Z",
          "duration": "0.210471",
          "kw": {
            "key": "_ldap._tcp.idm.example.com.:server1.idm.example.com."
          }
      }

      当测试会返回 WARNING 时,测试会返回 WARNING,例如,记录数与预期数目不匹配:

    {
        "source": "ipahealthcheck.ipa.idns",
        "check": "IPADNSSystemRecordsCheck",
        "result": "WARNING",
        "uuid": "972b7782-1616-48e0-bd5c-49a80c257895",
        "when": "20200409100614Z",
        "duration": "0.203049",
        "kw": {
          "msg": "Got {count} ipa-ca A records, expected {expected}",
          "count": 2,
          "expected": 1
        }
    }

您可以使用身份管理(IdM)中的 Healthcheck 工具来验证 Kerberos 密钥分发中心(KDC)是否已配置为使用 krb5kdc worker 进程的最佳数量,它应该等于主机上的 CPU 核数。

先决条件

  • 您使用 RHEL 9.1 或更高版本。
  • 您有 root 特权。

流程

  • 输入:

    # ipa-healthcheck --source ipahealthcheck.ipa.kdc
    • --source ipahealthcheck.ipa.kdc 选项可确保 IdM Healthcheck 仅执行 KDCWorkersCheck 测试。

      如果 KDC worker 进程的数量与 CPU 核数匹配,则测试会返回 SUCCESS

      {
      	"source": "ipahealthcheck.ipa.kdc",
      	"check": "KDCWorkersCheck",
      	"result": "SUCCESS",
      	"uuid": "68f6e20a-0aa9-427d-8fdc-fbb8196d56cd",
      	"when": "20230105162211Z",
      	"duration": "0.000157",
      	"kw": {
        	"key": "workers"
      	}
      }

      如果 worker 进程数量与 CPU 核数不匹配,则测试会返回 WARNING。在以下示例中,带有 2 个核的主机被配置为只有一个 KDC worker 进程:

      {
          "source": "ipahealthcheck.ipa.kdc",
          "check": "KDCWorkersCheck",
          "result": "WARNING",
          "uuid": "972b7782-1616-48e0-bd5c-49a80c257895",
          "when": "20230105122236Z",
          "duration": "0.203049",
          "kw": {
            "key": ‘workers’,
            "cpus": 2,
            "workers": 1,
            "expected": "The number of CPUs {cpus} does not match the number of workers {workers} in {sysconfig}"
          }
      }

      如果没有配置的 worker,则测试也会输出 WARNING。在以下示例中,/etc/sysconfig/krb5kdc 配置文件中缺少 KRB5KDC_ARGS 变量:

      {
        "source": "ipahealthcheck.ipa.kdc",
        "check": "KDCWorkersCheck",
        "result": "WARNING",
        "uuid": "5d63ea86-67b9-4638-a41e-b71f4
    56efed7",
        "when": "20230105162526Z",
        "duration": "0.000135",
        "kw": {
          "key": "workers",
          "sysconfig": "/etc/sysconfig/krb5kdc",
          "msg": "KRB5KDC_ARGS is not set in {sysconfig}"
        }
      }

第 7 章 使用 Healthcheck 检查 IdM 复制

您可以使用 Healthcheck 工具测试身份管理(IdM)复制。

先决条件

  • 您使用 RHEL 版本 8.1 或更新版本。

7.1. IdM 复制和拓扑 Healthcheck 测试

Healthcheck 工具包含身份管理(IdM)拓扑配置的测试。测试会搜索复制冲突问题。

您可以在 ipa-healthcheck --list-sources 命令的输出的 ipahealthcheck.ipa.topologyipahealthcheck.ds.replication 源下找到 IPATopologyDomainCheckReplicationConflictCheck 测试。

IPATopologyDomainCheck

测试以下配置:

  • 没有 IdM 服务器与拓扑断开连接。
  • IdM 服务器没有超过推荐的复制协议数量。

如果测试成功,则测试会返回配置的域。否则,将报告特定的连接错误。

注意

测试为 domain 后缀运行 ipa topologysuffix-verify 命令。如果在此服务器上配置了 IdM Certificate Authority server 角色,它也会为 ca 后缀运行命令。

ReplicationConflictCheck
搜索 LDAP 匹配中的条目 (& (! (objectclass=nstombstone)) (nsds5ReplConflict 3.3.0))

7.2. 使用 Healthcheck 检查复制

按照以下步骤,使用 Healthcheck 工具运行身份管理(IdM)复制和拓扑配置的独立手动测试。

先决条件

  • 您有 root 特权。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.ds.replication --source=ipahealthcheck.ipa.topology
    • --source=ipahealthcheck.ds.replication and-- source=ipahealthcheck.ipa.topology 选项可确保 IdM Healthcheck 只执行复制冲突和拓扑测试。

    可能有四个不同的结果:

    • SUCCESS — 测试成功通过。

      {
        "source": "ipahealthcheck.ipa.topology",
        "check": "IPATopologyDomainCheck",
        "result": "SUCCESS",
        "kw": {
          "suffix": "domain"
        }
      }
    • WARNING — 测试通过但可能会有问题。
    • ERROR — 测试失败。

      {
        "source": "ipahealthcheck.ipa.topology",
        "check": "IPATopologyDomainCheck",
        "result": "ERROR",
        "uuid": d6ce3332-92da-423d-9818-e79f49ed321f
        "when": 20191007115449Z
        "duration": 0.005943
        "kw": {
          "msg": "topologysuffix-verify domain failed, server2 is not connected (server2_139664377356472 in MainThread)"
        }
      }
    • CRITICAL — 测试失败,它会影响 IdM 服务器的功能。
注意

当尝试检查问题时,在所有 IdM 服务器中运行这些测试。

7.3. 其他资源

了解如何使用 Healthcheck 工具识别身份管理(IdM)和活动目录(AD)之间的信任问题。

8.1. IdM 和 AD 信任 Healthcheck 测试

Healthcheck 工具包括多个测试,用于测试身份管理(IdM)和活动目录(AD)之间的信任状态。

要查看所有信任测试,请使用 --list-sources 选项运行 ipa-healthcheck:

# ipa-healthcheck --list-sources

您可以在 ipahealthcheck.ipa.trust 源下找到所有与信任相关的测试:

IPATrustAgentCheck
如果当前主机被配置为信任代理,则此测试会检查 SSSD 配置。对于 /etc/sssd/sssd.conf 中的每个域,其中 id_provider=ipa 可确保 ipa_server_modeTrue
IPATrustDomainsCheck
此测试通过将 sssctl domain-list 中的域列表与 ipa trust-find 之外的 IdM 域的域列表进行比较,来检查信任域是否与 SSSD 域匹配。
IPATrustCatalogCheck

此测试解析为 AD 用户 Administrator@REALM。这会在 sssctl domain-status 输出中生成 AD Global catalog 和 AD Domain Controller 值。

对于每个信任域,查找 SID + 500 的 ID 的用户,即管理员 ID,然后检查 sssctl domain-status <domain> --active-server 的输出,以确保域处于活动状态。

IPAsidgenpluginCheck
此测试会验证 IdM 389-ds 实例中是否启用了 sidgen 插件。该测试还验证 cn=plugins,cn=config 中的 IPA SIDGENipa-sidgen-task 插件是否包含 nsslapd-pluginEnabled 选项。
IPATrustAgentMemberCheck
此测试会验证当前主机是 cn=adtrust agents,cn=sysaccounts,cn=etc,SUFFIX 的成员。
IPATrustControllerPrincipalCheck
此测试会验证当前主机是 cn=adtrust agents,cn=sysaccounts,cn=etc,SUFFIX 的成员。
IPATrustControllerServiceCheck
此测试会验证当前主机是否在 ipactl 中启动了 ADTRUST 服务。
IPATrustControllerConfCheck
此测试会验证在 net conf 列表中是否为 passdb 后端启用 ldapi
IPATrustControllerGroupSIDCheck
此测试将验证 admins 组的 SID 是否以 512 结尾,这是域管理员的 RID。
IPATrustPackageCheck
此测试会验证是否没有启用信任控制器和 AD 信任,是否安装了 trust-ad 软件包。

8.2. 使用 Healthcheck 工具输出信任

按照以下流程,使用 Healthcheck 工具对身份管理(IdM)和活动目录(AD)信任健康检查运行独立的手动测试。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.ipa.trust --failures-only
    • --source=ipahealthcheck.ipa.trust 选项可确保 IdM Healthcheck 仅执行信任测试。

成功测试显示空的括号:

# ipa-healthcheck --source=ipahealthcheck.ipa.trust
[]
注意

当尝试查找问题时,在所有 IdM 服务器中运行这些测试。

第 9 章 使用 IdM Healthcheck 验证系统证书

了解更多有关使用 Healthcheck 工具识别身份管理(IdM)中系统证书的问题的信息。

9.1. 系统证书健康检查测试

Healthcheck 工具包括用于验证系统或 Dogtag、证书的多个测试。

您可以在 ipa-healthcheck --list-sources 命令的输出中的 ipahealthcheck.dogtag.ca 源下找到与证书相关的所有测试。

DogtagCertsConfigCheck

此测试会将其 NSS 数据库中的 CA(Certificate Authority)证书与 CS.cfg 中存储的相同值进行比较。如果不匹配,CA 无法启动。

特别是,它会检查:

  • auditSigningCert cert-pki-ca against ca.audit_signing.cert
  • ocspSigningCert cert-pki-ca against ca.ocsp_signing.cert
  • caSigningCert cert-pki-ca against ca.signing.cert
  • subsystemCert cert-pki-ca against ca.subsystem.cert
  • Server-Cert cert-pki-caca.sslserver.cert

如果安装了 Key Recovery Authority (KRA),它也会检查:

  • transportCert cert-pki-kra against ca.connector.KRA.transportCert
DogtagCertsConnectivityCheck

此测试会验证连接。此测试等同于检查以下内容的 ipa cert-show 1 命令:

  • Apache 中的 PKI 代理配置
  • IdM 可以找到 CA
  • RA 代理客户端证书
  • CA 回复请求的正确性

该测试会验证是否可以执行 ipa cert-show 命令,以及是否从 IdM CA 返回预期响应 - 证书本身或 未找到 的响应。

9.2. 使用 Healthcheck 输出系统证书

按照以下流程,使用 Healthcheck 工具运行身份管理(IdM)证书的独立的手动测试。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.dogtag.ca
    • --source=ipahealthcheck.dogtag.ca 选项可确保 Healthcheck 仅执行证书测试。

成功测试示例:

{
  "source: ipahealthcheck.dogtag.ca",
  "check: DogtagCertsConfigCheck",
  "result: SUCCESS",
  "uuid: 9b366200-9ec8-4bd9-bb5e-9a280c803a9c",
  "when: 20191008135826Z",
  "duration: 0.252280",
  "kw:" {
    "key": "Server-Cert cert-pki-ca",
    "configfile":  "/var/lib/pki/pki-tomcat/conf/ca/CS.cfg"
    }
}

一个失败的测试示例:

{
  "source: ipahealthcheck.dogtag.ca",
  "check: DogtagCertsConfigCheck",
  "result: CRITICAL",
  "uuid: 59d66200-1447-4b3b-be01-89810c803a98",
  "when: 20191008135912Z",
  "duration: 0.002022",
  "kw:" {
    "exception": "NSDB /etc/pki/pki-tomcat/alias not initialized",
    }
}
注意

当尝试找到问题时,在所有 IdM 服务器中运行证书测试。

第 10 章 使用 IdM Healthcheck 验证证书

了解更多有关理解和使用身份管理(IdM)中的 Healthcheck 工具,以识别由 certmonger 工具维护的 IdM 证书的问题。

10.1. IdM 证书 Healthcheck 测试

Healthcheck 工具包括多个测试,用于验证身份管理(IdM)中由 certmonger 维护的证书状态。有关 certmonger 的详情,请参阅使用 certmonger 为服务获取 IdM 证书

此测试套件检查证书过期、验证、信任和其他配置。健康检查可以报告同一底层问题的多个错误。

您可以在 ipa-healthcheck --list-sources 命令的输出中的 ipahealthcheck.ipa.certs 源中找到这些证书测试。

IPACertmongerExpirationCheck

此测试会检查 certmonger 中的过期时间。

如果报告错误,代表证书已过期。

如果出现警告,证书将很快过期。默认情况下,如果测试在证书过期前运行 28 天或更少,会出现一个警告。

您可以在 /etc/ipahealthcheck/ipahealthcheck.conf 文件中配置天数。打开该文件后,更改 default 部分中的 cert_expiration_days 选项。

注意

Certmonger 加载和维护自己的证书过期视图。此检查不会验证磁盘上的证书。

IPACertfileExpirationCheck

此测试会检查证书文件或 NSS 数据库是否配置了正确的访问权限。此测试还会检查过期时间。因此,仔细阅读错误或警告输出中的 msg 属性。消息指定了问题。

注意

此测试会检查磁盘上的证书。如果证书缺失或不可读取,健康检查会返回错误。

IPACertNSSTrust
此测试会分析存储在 NSS 数据库中的证书的信任。对于 NSS 数据库中的预期跟踪证书,健康检查会将信任与预期值进行比较,并在不匹配时引发错误。
IPANSSChainValidation
此测试会验证 NSS 证书的证书链。测试执行 certutil -V -u V -e -d [dbdir] -n [nickname] 命令。
IPAOpenSSLChainValidation

此测试会验证 OpenSSL 证书的证书链。具体来说,健康检查执行以下 OpenSSL 命令:

openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt [cert file]
IPARAAgent
此测试将磁盘上的证书与 uid=ipara,ou=People,o=ipaca 中的 LDAP 中的等效记录进行比较。
IPACertRevocation
此测试会验证由 certmonger 维护的证书是否已被撤销。
IPACertmongerCA

此测试验证 证书授权机构 (CA)配置。IdM 无法在没有 CA 的情况下发布证书。

Certmonger 维护一组 CA 帮助程序。名为 IPA 的 CA 通过 IdM 为主机或服务发布证书,以主机或用户主体进行身份验证。

另外,还有 dogtag-ipa-ca-renew-agentdogtag-ipa-ca-renew-agent-reuse 用于续订 CA 子系统证书。

10.2. 使用 Healthcheck 工具检查证书

按照以下步骤,使用 Healthcheck 工具运行身份管理(IdM)证书健康检查的独立手动测试。

先决条件

  • 您有 root 特权。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.ipa.certs --failures-only
    • the- source=ipahealthcheck.ipa.certs 选项可确保 IdM Healthcheck 仅执行 certmonger 证书测试。

      成功测试显示空的括号:

      []

      失败测试显示以下输出:

      {
        "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]"
        }
      }

    这个 IPACertfileExpirationCheck 测试在打开 NSS 数据库时失败。

注意

当尝试检查问题时,在所有 IdM 服务器中运行此 Healthcheck 测试。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部