第 12 章 安装和克隆故障排除
本章论述了在安装证书系统时遇到的一些比较常见的安装和升级问题。
12.1. 安装
- 问: 我无法看到任何证书系统软件包或更新。
- 问: 初始化脚本会返回 OK 状态,但我的 CA 实例没有响应。这是因为什么?
- 问: 我想自定义 CA 签名证书的主题名称,但不是使用 pkispawn 互动安装模式进行此操作的方法。
- 问: 我想为 root 证书颁发机构设置不同的证书有效期和扩展 - 但是,我不会看到使用 pkispawn 设置它的方法。
- 问: 在配置子系统实例后,我试图连接到 Web 服务页面时,会看到一个 HTTP 500 错误代码。
我无法看到任何证书系统软件包或更新。
验证您的系统是否已正确注册到红帽订阅管理服务,分配了有效的订阅,并且启用了证书系统存储库。详情请查看 第 6.3.2.3 节 “附加红帽订阅并启用证书系统软件包存储库”。
初始化脚本会返回 OK 状态,但我的 CA 实例没有响应。这是因为什么?
								这不应发生。通常(但不总是)表示 CA 的监听程序问题,但可能有很多不同的原因。要查看发生错误,请运行以下命令检查日志 日志 :
							
journalctl -u pki-tomcatd@instance_name.service
journalctl -u pki-tomcatd@instance_name.service
								或者,检查 /var/log/pki/ instance_name/subsystem_type/debug 中的调试日志文件。
							
								一种情况是 CA 有 PID,表示进程正在运行,但没有为服务器打开任何监听程序。这将在 catalina.out 文件中返回 Java 调用类错误:
							
								这可能意味着您有错误的 JSS 或 NSS 版本。这个过程需要在路径中使用 libnss3.so。使用这个命令进行检查:
							
ldd /usr/lib64/libjss4.so
ldd /usr/lib64/libjss4.so
								如果没有找到 libnss3.so,请在 /etc/sysconfig/instance_name 配置文件中设置正确的类路径。然后,使用 systemctl restart pki-tomcatd@instance_name.service 命令重启 CA。
							
								我想自定义 CA 签名证书的主题名称,但不是使用 pkispawn 互动安装模式进行此操作的方法。
							
								要做到这一点,需要一个代表 /usr/share/pki/server/etc/default.cfg 文件的配置文件。请参阅 pkispawn (8) 和 pki_default.cfg (5) 手册页。
							
								我想为 root 证书颁发机构设置不同的证书有效期和扩展 - 但是,我不会看到使用 pkispawn 设置它的方法。
							
								您目前无法使用 pkispawn 来执行此操作。但是,有一种编辑 pkispawn 使用的证书配置文件来生成 root CA 证书。
							
									您必须在运行 pkispawn 前 执行此操作,以创建新的 CA 实例。
								
- 备份 - pkispawn使用的原始 CA 证书配置文件。- cp -p /usr/share/pki/ca/conf/caCert.profile /usr/share/pki/ca/conf/caCert.profile.orig - # cp -p /usr/share/pki/ca/conf/caCert.profile /usr/share/pki/ca/conf/caCert.profile.orig- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 打开配置向导使用的 CA 证书配置文件。 - vim /usr/share/pki/ca/conf/caCert.profile - # vim /usr/share/pki/ca/conf/caCert.profile- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 Validity Default 中的有效期重置为您想要的任何有效期。例如,将周期改为两年: - 2.default.class=com.netscape.cms.profile.def.ValidityDefault 2.default.name=Validity Default 2.default.params.range=7200 - 2.default.class=com.netscape.cms.profile.def.ValidityDefault 2.default.name=Validity Default 2.default.params.range=7200- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 通过在配置集中创建新的默认条目并将其添加到列表中来添加任何扩展。例如,要添加 Basic Constraint Extension,请添加默认值(在本例中是 default #9)): - 9.default.class=com.netscape.cms.profile.def.BasicConstraintsExtDefault 9.default.name=Basic Constraint Extension Constraint 9.default.params.basicConstraintsCritical=true 9.default.params.basicConstraintsIsCA=true 9.default.params.basicConstraintsPathLen=2 - 9.default.class=com.netscape.cms.profile.def.BasicConstraintsExtDefault 9.default.name=Basic Constraint Extension Constraint 9.default.params.basicConstraintsCritical=true 9.default.params.basicConstraintsIsCA=true 9.default.params.basicConstraintsPathLen=2- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 然后,将默认数量添加到默认值列表中,以使用新默认值: - list=2,4,5,6,7,8,9 - list=2,4,5,6,7,8,9- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
										设置新配置集后,然后运行 pkispawn来创建新 CA 实例并完成配置向导。
在配置子系统实例后,我试图连接到 Web 服务页面时,会看到一个 HTTP 500 错误代码。
								这是一个意外的通用错误,可能会造成很多不同原因。在 日志、系统 中检查 和调试 实例的日志文件,以查看发生了哪些错误。这列出了几个常见错误,但有很多其他可能。
							
错误 11:LDAP 数据库没有运行。
									如果用于内部数据库的红帽目录服务器实例没有运行,则您无法连接实例。这在实例未就绪 的日志文件中 会变得明显:
								
java.io.IOException: CS server is not ready to serve.
        com.netscape.cms.servlet.base.CMSServlet.service(CMSServlet.java:409)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
java.io.IOException: CS server is not ready to serve.
        com.netscape.cms.servlet.base.CMSServlet.service(CMSServlet.java:409)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:688)Tomcat 日志将特别识别 LDAP 连接的问题:
5558.main - [29/Oct/2010:11:13:40 PDT] [8] [3] In Ldap (bound) connection pool to host ca1 port 389, Cannot connect to LDAP server. Error: netscape.ldap.LDAPException: failed to connect to server ldap://ca1.example.com:389 (91)
5558.main - [29/Oct/2010:11:13:40 PDT] [8] [3] In Ldap (bound) connection pool
to host ca1 port 389, Cannot connect to LDAP server. Error:
netscape.ldap.LDAPException: failed to connect to server
ldap://ca1.example.com:389 (91)
								如实例的调试日志一样: 
							
[29/Oct/2010:11:39:10][main]: CMS:Caught EBaseException
Internal Database Error encountered: Could not connect to LDAP server host
ca1 port 389 Error netscape.ldap.LDAPException: failed to connect to
server ldap://ca1:389 (91)
        at com.netscape.cmscore.dbs.DBSubsystem.init(DBSubsystem.java:262)
[29/Oct/2010:11:39:10][main]: CMS:Caught EBaseException
Internal Database Error encountered: Could not connect to LDAP server host
ca1 port 389 Error netscape.ldap.LDAPException: failed to connect to
server ldap://ca1:389 (91)
        at com.netscape.cmscore.dbs.DBSubsystem.init(DBSubsystem.java:262)错误 2: VPN 阻止访问。
									另一个可能是通过 VPN 连接到子系统。VPN 必须有一个 配置选项,如 Use this connection only for resources enabled on its network。如果没有启用该选项,则实例的 Tomcat 服务的日志文件显示一系列连接错误,从而导致 HTTP 500 错误: