使用 IdM Healthcheck 监控 IdM 环境
执行状态和健康检查
摘要
ipa-healthcheck 工具可帮助管理员检测 Red Hat Identity Management (IdM)环境中的问题。这包括对 IdM 服务、配置文件权限、复制状态和证书问题的状态检查。
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 在顶部导航栏中点 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您的改进建议。包括文档相关部分的链接。
- 点对话框底部的 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 测试:
- 手动
- 使用 日志轮转 自动进行。
本节论述了如何手动执行测试。
先决条件
- 已安装 Healthcheck 工具。请参阅 安装 IdM Healthcheck。
流程
[可选] 要显示所有可用 Healthcheck 测试列表,请输入:
[root@server ~]# ipa-healthcheck --list-sources要运行 Healthcheck 工具,请输入:
[root@server ~]# ipa-healthcheck
1.4. 日志轮转 复制链接链接已复制到粘贴板!
日志轮转每日创建新的日志文件,并且按日期组织这些文件。该日期包含在文件名中。
使用日志轮转,您可以配置要存储的日志文件的最大数量。如果超过这个数字,最新的文件会替换最旧的文件。例如,如果最大轮转号为 30irty,则第三十优先日志文件将替换第一个,这是最旧的日志文件。
日志轮转会减少大量日志文件并组织它们。这有助于您分析日志。
1.5. 在调度上运行 IdM Healthcheck 复制链接链接已复制到粘贴板!
按照以下步骤将 IdM Healthcheck 配置为按调度运行。这包括配置以下工具:
-
定期运行 Healthcheck 工具的
systemd计时器并生成日志。 -
用于确保日志轮转的
crond服务。
默认的日志名是 healthcheck.log,轮转的日志使用 healthcheck.log-YYYYMMDD 格式。
Healthcheck 计时器工具不是实时工具。它仅用于在一小时内运行。如果您需要实时监控服务或磁盘空间,请使用不同的工具。
先决条件
-
您有
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文件,以配置您要保存的日志数:[...] rotate 30 }默认情况下,在日志被较新的日志覆盖前,日志会存储 30 天。
在同一文件中,配置存储日志的文件的路径。
/var/log/ipa/healthcheck/healthcheck.log { [...]默认情况下,日志保存在
/var/log/ipa/healthcheck/目录中。- 保存该文件。
确保
crond服务已启用并正在运行:# systemctl enable crond # systemctl start crond要开始生成日志,启动 IdM healthcheck 服务:
# systemctl start ipa-healthcheck
验证
-
进入
/var/log/ipa/healthcheck/目录。 - 显示日志文件的内容,以检查它是否已正确创建。
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特权。 - 您之前已在计时器中配置了日志轮转。
流程
-
在文本编辑器中打开
/etc/ipahealthcheck/ipahealthcheck.conf文件。 -
将选项
output_type=human和all=True添加到[default]部分。 - 保存并关闭该文件。
验证
手动运行 Healthcheck:
# ipa-healthcheck-
进入
/var/log/ipa/healthcheck/,检查日志是否采用正确的格式。
第 2 章 使用 IdM Healthcheck 检查服务 复制链接链接已复制到粘贴板!
您可以使用 Healthcheck 工具监控身份管理(IdM)服务器使用的服务。
2.1. IdM 服务 Healthcheck 测试 复制链接链接已复制到粘贴板!
Healthcheck 工具包含一个测试,用于检查身份管理(IdM)服务是否正确运行。从这个 Healthcheck 测试启动,因为未正确运行的 IdM 服务可能会导致其他 Healthcheck 测试失败。
根据配置的功能,服务测试是特定于上下文的。例如,只有在 IdM 服务器上配置了集成的 IdM DNS 服务时,才会检查 named。其他,如 smb 或 winbind,只有在启用了 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 服务器中运行这个测试。
-
the-
第 3 章 使用 IdM Healthcheck 检查磁盘空间 复制链接链接已复制到粘贴板!
您可以使用 Healthcheck 工具监控身份管理服务器的可用磁盘空间。
3.1. 磁盘空间健康检查测试 复制链接链接已复制到粘贴板!
Healthcheck 工具包括 FileSystemSpaceCheck 测试,用于检查可用磁盘空间。测试会检查以下内容:
- 需要最少的原始可用字节。
- 最小磁盘空间的百分比为 20%。
测试检查以下路径:
| 测试检查的路径 | 最小磁盘空间(以 MB 为单位) |
|---|---|
|
| 1024 |
|
| 512 |
|
| 1024 |
|
| 512 |
|
| 512 |
|
| 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 仅执行磁盘空间测试。
-
the-
成功测试显示空的括号:
[]
例如,无法显示失败的测试:
{
"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 服务器中运行这个测试。
第 4 章 使用 Healthcheck 验证 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
流程
要在 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 } }
第 6 章 使用 IdM Healthcheck 验证 KDC worker 进程的最佳数量 复制链接链接已复制到粘贴板!
您可以使用身份管理(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.topology 和 ipahealthcheck.ds.replication 源下找到 IPATopologyDomainCheck 和 ReplicationConflictCheck 测试。
- 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.replicationand--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. 其他资源 复制链接链接已复制到粘贴板!
第 8 章 使用 IdM Healthcheck 验证您的 IdM 和 AD 信任配置 复制链接链接已复制到粘贴板!
了解如何使用 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_mode为True。 - 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 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 结尾,这是域管理员的 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-caagainstca.audit_signing.cert -
ocspSigningCert cert-pki-caagainstca.ocsp_signing.cert -
caSigningCert cert-pki-caagainstca.signing.cert -
subsystemCert cert-pki-caagainstca.subsystem.cert -
Server-Cert cert-pki-ca与ca.sslserver.cert
如果安装了 Key Recovery Authority (KRA),它也会检查:
-
transportCert cert-pki-kraagainstca.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-agent和dogtag-ipa-ca-renew-agent-reuse用于续订 CA 子系统证书。
10.2. 使用 Healthcheck 工具检查证书 复制链接链接已复制到粘贴板!
按照以下步骤,使用 Healthcheck 工具运行身份管理(IdM)证书健康检查的独立手动测试。
先决条件
-
您有
root特权。
流程
输入:
# ipa-healthcheck --source=ipahealthcheck.ipa.certs --failures-onlythe-
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 测试。