使用 IdM Healthcheck 监控 IdM 环境


Red Hat Enterprise Linux 10

执行状态和健康检查

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

身份管理(IdM)中的 Healthcheck 命令行工具可帮助查找可能会影响 IdM 环境性能的问题。使用 Healthcheck,您可以事先识别问题,这样在成为关键问题之前纠正它。

注意

您可以在没获得 Kerberos 票据的情况下使用 Healthcheck。

模块是独立的

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

  • 复制问题
  • 证书有效期
  • 证书颁发机构基础设施问题
  • IdM 和活动目录信任问题
  • 正确的文件权限和所有权设置

输出格式和目的地

您可以使用 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 测试:

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

先决条件

流程

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

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

    [root@server ~]# ipa-healthcheck

1.4. 按计划运行 IdM Healthcheck

按照以下流程将 IdM Healthcheck 配置为按计划运行。这包括配置以下工具:

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

默认日志名称为 healthcheck.log,轮转的日志使用 healthcheck.log-YYYMMDD 格式。

注意

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.5. 日志轮转

日志轮转每天创建一个新的日志文件,文件按日期进行组织。日期包含在文件名中。

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

日志轮转减少了大量日志文件,并对它们进行组织。这帮助您分析日志。

1.6. IdM Healthcheck 配置修改

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

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

注意

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

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

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

先决条件

  • 您有 root 特权。
  • 您之前已将 Healthcheck 配置为按计划运行。

流程

  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
    • --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
    • --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)配置文件。有关工具的常规信息,请参阅 IdM 中的 Healthcheck

4.1. 文件权限健康检查测试

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)服务器的配置文件运行独立的手工测试。

流程

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

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

    成功测试会显示空括号:

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

    失败的测试显示结果 类似如下

    {
      "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 记录有关的问题。有关工具的常规信息,请参阅 IdM 中的 Healthcheck

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

    {
        "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 的核数。

您可以在 ipahealthcheck.ipa.kdc 源中找到 KDC worker 进程正确数量的测试。由于 Healthcheck 工具包括许多测试,因此您可以通过添加 --source ipahealthcheck.ipa.kdc 选项,只包括 KDC worker 测试来缩小结果范围。

先决条件

  • KDC worker 进程 Healthcheck 工具仅在 RHEL 8.7 或更新版本上提供。
  • 您必须以 root 用户身份执行 Healthcheck 测试。

流程

  • 要运行 KDC worker 进程的检查,请输入:

    # ipa-healthcheck --source ipahealthcheck.ipa.kdc

    如果 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。在以下示例中,具有两个核的主机被配置为只有一个 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)复制。有关工具的常规信息,请参阅 IdM 中的 Healthcheck

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=*)) 的条目。

7.2. 使用 Healthcheck 进行复制

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

先决条件

  • 您有 root 特权。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.ds.replication --source=ipahealthcheck.ipa.topology

    --source=ipahealthcheck.ds.replication--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 服务器中运行这些测试。

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

8.1. IdM 和 AD 信任健康检查测试

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_mode 为 True
IPATrustDomainsCheck
此测试通过将 sssctl domain-list 中的域的列表与排除了 IdM 域的 ipa trust-find 中的域的列表进行比较,来检查信任域是否与 SSSD 域匹配。
IPATrustCatalogCheck

此测试解析一个 AD 用户 Administrator@REALM。这将填充 sssctl domain-status 输出中的 AD Global 目录和 AD 域控制器值。

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

IPAsidgenpluginCheck
此测试验证 sidgen 插件是否已在 IdM 389-ds 实例中启用了。该测试还验证 cn=plugins,cn=config 中的 IPA SIDGENipa-sidgen-task 插件是否包含 nsslapd-pluginEnabled 选项。
IPATrustAgentMemberCheck
此测试将验证当前主机是否为 cn=adtrust 代理,cn=sysaccounts,cn=etc,SUFFIX 的成员。
IPATrustControllerPrincipalCheck
此测试将验证当前主机是否为 cn=adtrust 代理,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

    --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(证书授权机构)证书与存储在 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
  • 针对 ca.sslserver.certServer-Cert cert-pki-ca

如果安装了 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 返回预期的响应 - 证书本身或 not found 响应。

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 工具包括多个测试,用于验证身份管理(IdM)中 certmonger 维护的证书的状态。有关 certmonger 的详情,请参阅 使用 certmonger 获取服务的 IdM 证书

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

您可以在 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 数据库中的预期跟踪的证书,Healthcheck 会将信任与预期值进行比较,并在不匹配时引发一个错误。
IPANSSChainValidation
此测试会验证 NSS 证书的证书链。测试执行 certutil -V -u V -e -d [dbdir] -n 命令。
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

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

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

还有续订 CA 子系统证书的 dogtag-ipa-ca-renew-agentdogtag-ipa-ca-renew-agent-reuse

10.2. 使用 Healthcheck 工具验证证书

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

先决条件

  • 您有 root 特权。

流程

  • 输入:

    # ipa-healthcheck --source=ipahealthcheck.ipa.certs
    • --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]"
        }
      }

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

    注意

    当尝试检查问题时,在所有 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
返回顶部