使用 IdM Healthcheck 监控 IdM 环境
执行状态和健康检查
摘要
ipa-healthcheck
工具帮助管理员检测 Red Hat Identity Management (IdM)环境中的问题。这包括对 IdM 服务、配置文件权限、复制状态和证书问题的状态检查。
对红帽文档提供反馈
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 单击顶部导航栏中的 Create。
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您的改进建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 安装并运行 IdM Healthcheck 工具
了解有关 IdM Healthcheck 工具以及如何安装并运行它的更多信息。
- Healthcheck 工具只在 RHEL 8.1 或更高版本中提供。
1.1. IdM 中的 Healthcheck
身份管理(IdM)中的 Healthcheck 工具可帮助发现可能影响 IdM 环境健康的问题。
Healthcheck 工具是一个命令行工具,可在无需 Kerberos 身份验证的情况下使用。
模块是独立的
Healthcheck由独立模块组成,用于测试:
- 复制问题
- 证书有效期
- 证书颁发机构基础设施问题
- IdM 和 Active Directory 信任问题
- 正确的文件权限和所有权设置
两种输出格式
HealthCheck 生成以下输出,您可以使用 output-type
选项来设置:
-
JSON
:JSON 格式的机器可读输出(默认) -
human
:人类可读的输出
您可以使用 --output-file
选项来指定不同的文件目标。
结果
每个 Healthcheck 模块返回以下结果之一:
- SUCCESS
- 配置为预期
- WARNING
- 不是错误,但需要对其进行检查和评估
- ERROR
- 未按预期配置
- CRITICAL
- 未按预期配置,可能会有非常大的影响
1.2. 安装 IdM Healthcheck
按照以下流程安装 IdM Healthcheck 工具。
流程
安装
ipa-healthcheck
软件包:[root@server ~]# yum install ipa-healthcheck
注意在 RHEL 8.1 和 8.2 系统上,使用 yum install /usr/bin/ipa-healthcheck 命令。
验证
使用
--failures-only
选项使ipa-healthcheck
只报告错误。功能齐全的 IdM 安装返回一个空结果[]
。[root@server ~]# ipa-healthcheck --failures-only []
其他资源
-
使用
ipa-healthcheck --help
查看所有支持的参数。
1.3. 运行 IdM Healthcheck
Healthcheck 可以手动运行,也可以使用 日志循环 自动运行。
先决条件
- 必须安装 Healthcheck 工具。请参阅 安装 IdM Healthcheck。
流程
要手动运行healthcheck,请输入
ipa-healthcheck
命令。[root@server ~]# ipa-healthcheck
其他资源
有关所有选项,请查看手册页: man ipa-healthcheck
。
1.4. 日志轮转
日志轮转每天创建一个新的日志文件,并按照日期对文件进行组织。由于所有日志文件都保存在同一目录中,您可以根据日期选择特定的日志文件。
轮转意味着,保持的日志文件数量有一个最大的限制,如果超过了这个限制,最新的文件会重写并重命名最旧的文件。例如,如果轮转数量为 30,则第三十一个日志文件会替代第一个(最旧的)日志文件。
日志轮转可以减少日志文件的数量并对它们进行组织,这有助于分析日志。
1.5. 使用 IdM Healthcheck 配置日志轮转
按照此流程,使用以下内容配置日志轮转:
-
systemd
计时器 -
crond
服务
systemd
计时器定期运行 Healthcheck 工具并生成日志。默认值设为每天的上午 4 点。
crond
服务用于日志轮转。
默认的日志名是 healthcheck.log
,轮转的日志使用 healthcheck.log-YYYYMMDD
格式。
先决条件
- 您必须以 root 用户身份执行命令。
步骤
启用
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.
启动
systemd
计时器:# systemctl start ipa-healthcheck.timer
打开
/etc/logrotate.d/ipahealthcheck
文件,以配置应保存的日志数量。默认情况下,日志轮转设定为 30 天。
在
/etc/logrotate.d/ipahealthcheck
文件中,配置日志的路径。默认情况下,日志保存在
/var/log/ipa/healthcheck/
目录中。在
/etc/logrotate.d/ipahealthcheck
文件中,配置日志生成时间。默认情况下,日志在每天的上午 4 点创建。
要使用日志轮转,请确保启用了
crond
服务并正在运行:# systemctl enable crond # systemctl start crond
要开始生成日志,启动 IPA healthcheck 服务:
# systemctl start ipa-healthcheck
要验证结果,进入 /var/log/ipa/healthcheck/
并检查日志是否已正确创建。
1.6. 更改 IdM Healthcheck 配置
您可以通过在 /etc/ipahealthcheck/ipahealthcheck.conf
文件中添加所需的命令行选项来更改 Healthcheck 设置。这很有用,例如,您配置了日志轮转,并希望确保日志采用适合自动分析的格式,但不想设置新的计时器。
此 Healthcheck 功能仅适用于 RHEL 8.7 或更新版本。
在修改后,Healthcheck 创建的所有日志遵循新的设置。这些设置也应用到健康检查的任何手动执行。
手动运行 Healthcheck 时,配置文件中的设置优先于命令行中指定的选项。例如,如果在配置文件中将 output_type
设置为 human
,则在命令行中指定 json
不起作用。您用来在配置文件中指定的任何命令行选项都会正常应用。
1.7. 配置 Healthcheck 以更改输出日志格式
按照以下流程,使用已设置的计时器配置 Healthcheck。在本例中,您将配置 Healthcheck 以人类可读格式生成日志,并且包含成功结果而不是仅错误。
先决条件
- 您的系统正在运行 RHEL 8.7 或更高版本。
-
您有
root
特权。 - 您之前已在计时器中配置了日志轮转。
流程
-
在文本编辑器中打开
/etc/ipahealthcheck/ipahealthcheck.conf
文件。 -
将选项
output_type=human
和all=True
添加到[default]
部分。 - 保存并关闭该文件。
验证
手动运行 Healthcheck:
# ipa-healthcheck
-
进入
/var/log/ipa/healthcheck/
,检查日志是否采用正确的格式。
1.8. 其他资源
有关使用 IdM 健康检查的示例,请参阅 配置和管理身份管理 指南中的以下章节。
- 您还可以看到这些章节被组织到一个指南中:使用 IdM 健康检查来监控 IdM 环境
第 2 章 使用 IdM Healthcheck 检查服务
您可以使用 Healthcheck 工具监控身份管理(IdM)服务器使用的服务。
详情请参阅 IdM 中的状况检查。
先决条件
- Healthcheck 工具仅适用于 RHEL 8.1 及更新版本
2.1. 服务 Healthcheck 测试
Healthcheck 工具包含一个测试,用于检查任何 IdM 服务是否没有运行。这个测试很重要,因为没有运行的服务可能会导致其他测试中出现失败。因此,检查所有服务是否已首先运行。然后您可以检查所有其他测试结果。
要查看所有服务测试,请使用 --list-sources
选项运行 ipa-healthcheck
:
# ipa-healthcheck --list-sources
您可以在 ipahealthcheck.meta.services
源下查找通过 Healthcheck.meta.services 源测试的所有服务:
- certmonger
- dirsrv
- gssproxy
- httpd
- ipa_custodia
- ipa_dnskeysyncd
- ipa_otpd
- kadmin
- krb5kdc
- named
- pki_tomcatd
- sssd
当尝试检查问题时,在所有 IdM 服务器中运行这些测试。
2.2. 使用 Healthcheck 的扫描服务
按照以下流程,使用 Healthcheck 工具对在身份管理(IdM)服务器上运行的服务运行独立的手工测试。
Healthcheck 工具包括许多测试,其结果可以被缩短:
-
排除所有成功的测试:
--failures-only
-
仅包含服务测试
:-- source=ipahealthcheck.meta.services
步骤
要运行有关服务的警告、错误和严重级别的问题,请输入:
# ipa-healthcheck --source=ipahealthcheck.meta.services --failures-only
成功测试显示空的括号:
[ ]
如果其中一个服务失败,则结果可能会和本例类似:
{ "source": "ipahealthcheck.meta.services", "check": "httpd", "result": "ERROR", "kw": { "status": false, "msg": "httpd: not running" } }
其他资源
-
请参阅
man ipa-healthcheck
。
第 3 章 使用 IdM Healthcheck 检查磁盘空间
您可以使用 Healthcheck 工具监控身份管理服务器的可用磁盘空间。
详情请参阅 IdM 中的状况检查。
先决条件
- Healthcheck 工具仅适用于 RHEL 8.1 及更新版本。
3.1. 磁盘空间健康检查测试
Healthcheck 工具包括检查可用的磁盘空间的测试。可用磁盘空间不足可能会导致问题:
- 日志
- 执行
- 备份
测试检查以下路径:
测试检查的路径 | 最小磁盘空间(以 MB 为单位) |
---|---|
| 1024 |
| 512 |
| 1024 |
| 512 |
| 512 |
| 512 |
要列出所有测试,请使用 --list-sources
选项运行 ipa-healthcheck
:
# ipa-healthcheck --list-sources
您可以在 ipahealthcheck.system.filesystemspace
源中找到文件系统空间检查测试:
- FileSystemSpaceCheck
此测试使用以下方法检查可用的磁盘空间:
- 需要最少的原始可用字节。
- 最小磁盘空间的百分比为 20%。
3.2. 使用 healthcheck 工具扫描磁盘空间
按照以下流程,使用 Healthcheck 工具在身份管理(IdM)服务器上对可用磁盘空间运行独立的手工测试。
由于 Healthcheck 包括许多测试,因此您可以通过以下方法缩小结果:
-
排除所有成功的测试:
--failures-only
-
仅包含空间检查测试
:-- source=ipahealthcheck.system.filesystemspace
步骤
要运行有关可用空间的警告、错误和严重级别的问题,请输入:
# ipa-healthcheck --source=ipahealthcheck.system.filesystemspace --failures-only
成功测试显示空的括号:
[]
例如,无法显示失败的测试:
{ "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
目录已空间不足。
其他资源
-
请参阅
man ipa-healthcheck
。
第 4 章 使用 Healthcheck 验证 IdM 配置文件的权限
了解如何使用 Healthcheck 工具测试身份管理(IdM)配置文件。
详情请参阅 IdM 中的状况检查。
先决条件
- Healthcheck 工具仅适用于 RHEL 8.1 或更高版本的系统。
4.1. 文件权限 Healthcheck 测试
Healthcheck 工具测试由 Identity Management(IdM)安装和配置的一些重要文件的所有权和权限。
如果您更改了任何测试的文件的所有权或权限,则测试会在 result
部分中返回一个警告。这不一定意味着配置无法正常工作,它意味着该文件与默认配置不同。
要查看所有测试,请使用 --list-sources
选项运行 ipa-healthcheck
:
# 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
如果启用了 PKINIT:
-
/var/lib/ipa/certs/kdc.pem
/var/lib/ipa/private/kdc.key
如果配置了 DNS:
-
/etc/named.keytab
-
/etc/ipa/dnssec/ipa-dnskeysyncd.keytab
-
- TomcatFileCheck
如果配置了 CA,这个测试会检查一些特定于 tomcat 的文件:
-
/etc/pki/pki-tomcat/password.conf
-
/var/lib/pki/pki-tomcat/conf/ca/CS.cfg
-
/etc/pki/pki-tomcat/server.xml
-
当尝试查找问题时,在所有 IdM 服务器中运行这些测试。
4.2. 使用 Healthcheck 检查配置文件
按照以下流程,使用 Healthcheck 工具对身份管理(IdM)服务器的配置文件运行独立的手工测试。
Healthcheck 工具包括多个测试。可以通过以下方法缩小结果:
-
排除所有成功的测试:
--failures-only
-
仅包含所有权和权限测试
:-- source=ipahealthcheck.ipa.files
步骤
要在 IdM 配置文件所有权和权限上运行 Healthcheck 测试,同时只显示警告、错误和严重问题,请输入:
# ipa-healthcheck --source=ipahealthcheck.ipa.files --failures-only
成功测试显示空的括号:
# ipa-healthcheck --source=ipahealthcheck.ipa.files --failures-only []
失败测试显示类似如下的 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" } }
其他资源
-
请参阅
man ipa-healthcheck
。
第 5 章 使用 IdM Healthcheck 检查 DNS 记录
您可以使用 Healthcheck 工具识别身份管理(IdM)中与 DNS 记录有关的问题。
先决条件
- DNS 记录 Healthcheck 工具仅适用于 RHEL 8.2 或更新版本。
5.1. DNS 记录健康检查
Healthcheck 工具包含一个测试,用于检查自动发现所需的 DNS 记录是否可以解析。
要列出所有测试,请使用 --list-sources
选项运行 ipa-healthcheck
:
# ipa-healthcheck --list-sources
您可以在 ipahealthcheck.ipa.idns
源中找到 DNS 记录检查测试。
- IPADNSSystemRecordsCheck
-
此测试使用
/etc/resolv.conf
文件中指定的第一个解析器检查ipa dns-update-system-records --dry-run
命令的 DNS 记录。记录在 IPA 服务器上测试。
5.2. 使用 healthcheck 工具屏幕 DNS 记录
按照以下流上,使用 Healthcheck 工具在身份管理(IdM)服务器中运行对 DNS 记录的独立的手工测试。
Healthcheck 工具包括多个测试。通过添加 --source ipahealthcheck.ipa.idns
选项,可以仅包含 DNS 记录测试来缩小结果。
先决条件
-
您必须以
root
用户身份执行 Healthcheck 测试。
步骤
要运行 DNS 记录检查,请输入:
# ipa-healthcheck --source ipahealthcheck.ipa.idns
如果可解析记录,则测试会返回
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 } }
其他资源
-
请参阅
man ipa-healthcheck
。
第 6 章 使用 IdM Healthcheck 验证 KDC worker 进程的最佳数量
您可以在身份管理(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}" } }
其他资源
-
man ipa-healthcheck
第 7 章 使用 Healthcheck 检查 IdM 复制
您可以使用 Healthcheck 工具测试身份管理(IdM)复制。
先决条件
- 您使用 RHEL 版本 8.1 或更新版本。
7.1. 复制健康检查测试
Healthcheck 工具测试身份管理(IdM)拓扑配置,并搜索复制冲突问题。
要列出所有测试,请使用 --list-sources
选项运行 ipa-healthcheck
:
# ipa-healthcheck --list-sources
拓扑测试放置在 ipahealthcheck.ipa.topology
和 ipahealthcheck.ds.replication
源下:
- IPATopologyDomainCheck
此测试验证:
- 没有单一服务器与拓扑断开连接。
- 该服务器的复制协议数量不超过推荐的数量。
如果测试成功,则测试会返回配置的域。否则,将报告特定的连接错误。
注意测试为域后缀运行
ipa topologysuffix-verify
命令。如果在此服务器上配置了 IdM 证书颁发机构服务器角色,它也会为
ca
后缀运行该命令。- ReplicationConflictCheck
-
测试搜索 LDAP 中与
(&(!(objectclass=nstombstone))(nsds5ReplConflict=*))
匹配的项。
当尝试检查问题时,在所有 IdM 服务器中运行这些测试。
其他资源
7.2. 使用 Healthcheck 检查复制
按照以下流程,使用 Healthcheck 工具对身份管理(IdM)复制拓扑和配置运行独立的手工测试。
Healthcheck 工具包括多个测试。因此,您可以使用以下方法缩短结果:
-
复制冲突测试:
--source=ipahealthcheck.ds.replication
-
正确拓扑测试:
--source=ipahealthcheck.ipa.topology
先决条件
-
已以
root
用户身份登录。
步骤
要运行 Healthcheck 复制冲突和拓扑检查,请输入:
# ipa-healthcheck --source=ipahealthcheck.ds.replication --source=ipahealthcheck.ipa.topology
可能有四个不同的结果:
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 服务器的功能。
其他资源
-
man ipa-healthcheck
7.3. 其他资源
第 8 章 使用 IdM Healthcheck 验证您的 IdM 和 AD 信任配置
了解如何使用 Healthcheck 工具识别 IdM 的问题,以及身份管理(IdM)中活动目录信任的问题。
先决条件
- Healthcheck 工具仅适用于 RHEL 8.1 或更高版本
8.1. IdM 和 AD 信任 Healthcheck 测试
Healthcheck 工具包括几个测试用来测试您的身份管理(IdM)和 Active Directory(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
-
此测试通过对比
ssctl domain-list
中的域列表和ipa trust-find
的域列表(不包括 IPA 域),来检查信任域是否匹配 SSSD 域。 - IPATrustCatalogCheck
此测试解析一个 AD 用户
Administrator@REALM
。这会在sssctl domain-status
输出中生成 AD Global catalog 和 AD Domain Controller 值。对于每个信任域,查找 SID + 500(管理员)的 id 用户,然后检查
ssctl domain-status <domain> --active-server
的输出,以确保域处于活动状态。- IPAsidgenpluginCheck
-
此测试会验证
sidgen
插件是否在 IPA 389-ds 实例中启用。该测试还验证cn=plugins,cn=config
中的IPA SIDGEN
和ipa-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 结尾(Domain Admins RID)。
- IPATrustPackageCheck
-
此测试会验证是否没有启用信任控制器和 AD 信任,是否安装了
trust-ad
软件包。
当尝试查找问题时,在所有 IdM 服务器中运行这些测试。
8.2. 使用 Healthcheck 工具输出信任
按照以下流程,使用 Healthcheck 工具对身份管理(IdM)和活动目录(AD)信任健康检查运行独立的手工测试。
Healthcheck 工具包括多个测试,因此您可以缩短结果:
-
排除所有成功的测试:
--failures-only
-
仅包含信任测试
:-- source=ipahealthcheck.ipa.trust
步骤
要运行有关信任的警告、错误和严重级别的问题,请输入:
# ipa-healthcheck --source=ipahealthcheck.ipa.trust --failures-only
成功测试显示空的括号:
# ipa-healthcheck --source=ipahealthcheck.ipa.trust --failures-only []
其他资源
-
请参阅
man ipa-healthcheck
。
第 9 章 使用 IdM Healthcheck 验证系统证书
了解如何使用 Healthcheck 工具识别身份管理(IdM)中系统证书的问题。
详情请参阅 IdM 中的状况检查。
先决条件
- Healthcheck 工具仅适用于 RHEL 8.1 或更高版本。
9.1. 系统证书健康检查测试
Healthcheck 工具包括多个用于验证系统(DogTag)证书的测试。
要查看所有测试,请使用 --list-sources
选项运行 ipa-healthcheck
:
# ipa-healthcheck --list-sources
您可以在 ipahealthcheck.dogtag.ca
源中找到所有测试:
- DogtagCertsConfigCheck
此测试会将其 NSS 数据库中的 CA(Certificate Authority)证书与
CS.cfg
中存储的相同值进行比较。如果不匹配,CA 无法启动。特别是,它会检查:
-
auditSigningCert cert-pki-ca
againstca.audit_signing.cert
-
ocspSigningCert cert-pki-ca
againstca.ocsp_signing.cert
-
caSigningCert cert-pki-ca
againstca.signing.cert
-
subsystemCert cert-pki-ca
againstca.subsystem.cert
-
Server-Cert cert-pki-ca
与ca.sslserver.cert
如果安装了密钥恢复授权(KRA):
-
transportCert cert-pki-kra
againstca.connector.KRA.transportCert
-
- DogtagCertsConnectivityCheck
此测试会验证连接。此测试等同于
ipa cert-show 1
命令,它检查:- Apache 中的 PKI 代理配置
- IdM 可以找到 CA
- RA 代理客户端证书
- CA 回复请求的更正
请注意,测试会检查带有串行 #1 的证书,因为您想要
验证证书
是否可以被执行,并从 CA 返回预期的结果(证书或未找到证书)。
当尝试查找问题时,在所有 IdM 服务器中运行这些测试。
9.2. 使用 Healthcheck 输出系统证书
按照以下流程,使用 Healthcheck 工具对身份管理(IdM)证书运行独立的手工测试。
由于 Healthcheck 工具包括许多测试,您可以通过只包括 DogTag 测试:--source=ipahealthcheck.dogtag.ca
来缩小结果范围
步骤
要运行 Healthcheck 限制为 DogTag 证书,请输入:
# ipa-healthcheck --source=ipahealthcheck.dogtag.ca
成功测试示例:
{ "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", } }
其他资源
-
请参阅
man ipa-healthcheck
。
第 10 章 使用 IdM Healthcheck 验证证书
了解更多有关理解和使用身份管理(IdM)中 Healthcheck 工具,以识别 certmonger
维护的 IPA 证书的问题。
详情请参阅 IdM 中的状况检查。
先决条件
- Healthcheck 工具仅适用于 RHEL 8.1 及更新版本。
10.1. IdM 证书 Healthcheck 测试
Healthcheck 工具包括几个测试,用于验证 Identity Management(IdM)中由 certmonger 维护的证书状态。有关 certmonger 的详情,请参阅使用 certmonger 为服务获取 IdM 证书。
这个测试套件会检查过期、验证、信任和其他问题。可能会为相同的底层问题抛出多个错误。
要查看所有证书测试,请使用 --list-sources
选项运行 ipa-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 数据库中的预期跟踪证书,信任与预期值进行比较,导致在非匹配时引发错误。
- IPANSSChainValidation
-
此测试会验证 NSS 证书的证书链。测试执行:
certutil -V -u V -e -d [dbdir] -n [nickname]
- IPAOpenSSLChainValidation
此测试会验证 OpenSSL 证书的证书链。为了可以与这里的
NSSChain
验证比较,执行 OpenSSL 命令:openssl verify -verbose -show_chain -CAfile /etc/ipa/ca.crt [cert file]
- IPARAAgent
-
此测试将磁盘上的证书与
uid=ipara,ou=People,o=ipaca
中的 LDAP 中的等效记录进行比较。 - IPACertRevocation
- 此测试使用 certmonger 验证证书没有被撤销。因此,测试只能查找与由 certmonger 维护的证书连接的问题。
- IPACertmongerCA
此测试会验证 certmonger 证书颁发机构(CA)配置。IdM 无法在没有 CA 的情况下发布证书。
certmonger 维护一组 CA 帮助程序。在 IdM 中,有一个名为 IPA 的 CA,它会在主机或服务证书中以主机或用户主体身份通过 IdM 发出证书。
另外,还有
dogtag-ipa-ca-renew-agent
和dogtag-ipa-ca-renew-agent-reuse
,它们续订 CA 子系统证书。
当尝试检查问题时,在所有 IdM 服务器中运行这些测试。
10.2. 使用 Healthcheck 工具检查证书
按照以下流程,使用 Healthcheck 工具对身份管理(IdM)证书健康检查运行独立的手工测试。
Healthcheck 工具包括许多测试,您可以对结果进行简化:
-
排除所有成功的测试:
--failures-only
-
仅包含证书测试:
--source=ipahealthcheck.ipa.certs
先决条件
-
您必须以
root
用户身份执行 Healthcheck 测试。
步骤
要运行带有警告的 Healthcheck,有关证书的错误和严重问题,请输入:
# ipa-healthcheck --source=ipahealthcheck.ipa.certs --failures-only
成功测试显示空的括号:
[]
失败测试显示以下输出:
{ "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 数据库时失败。
其他资源
-
请参阅
man ipa-healthcheck
。