第 17 章 故障排除


本章涵盖了在安装证书系统时遇到的一些更常见用法问题。

问:

初始化脚本返回 OK 状态,但我的 CA 实例没有响应。这是因为什么?

答:

这不应发生。通常(但不总是)这表示 CA 的监听程序问题,但它可能有许多不同原因。检查 catalina.out、系统和调试实例的日志文件,以查看发生了哪些错误。这将列出几个常见错误。一个情况是 CA 的 PID,表示进程正在运行,但没有为服务器打开监听程序。这将在 catalina.out 文件中返回 Java 调用类错误:

Oct 29, 2010 4:15:44 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-9080
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav64)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav43)
        at java.lang.reflect.Method.invoke(Method.jav615)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.jav243)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.jav408)
Caused by: java.lang.UnsatisfiedLinkError: jss4

这可能意味着您存在错误的 JSS 或 NSS 版本。这个过程需要在路径中使用 libnss3.so。使用以下命令检查它:

# ldd /usr/lib64/libjss4.so

如果没有找到 libnss3.so,请尝试取消设置 LD_LIBRARY_PATH 变量,然后重新启动 CA。

# unset LD_LIBRARY_PATH
# pki-server restart <instance_name>
问:

我无法打开 pkiconsole,在 stdout 中看到 Java 异常

答:

这可能意味着您安装了错误的 JRE,或者 JRE 错误的 JRE 设置为默认值。运行 alternatives --config java 以查看所选的 JRE。红帽认证系统需要 OpenJDK 1.8。

问:

我尝试运行 pkiconsole,并在 stdout 中得到"Socket exceptions in stdout"。这是因为什么?

答:

这意味着存在端口问题。管理端口的 SSL 设置不正确(在 server.xml中有不当的配置),或者为访问 admin 界面提供错误的端口。端口错误类似如下:

NSS Cipher Supported '0xff04'
java.io.IOException: SocketException cannot read on socket
        at org.mozilla.jss.ssl.SSLSocket.read(SSLSocket.jav1006)
        at org.mozilla.jss.ssl.SSLInputStream.read(SSLInputStream.jav70)
        at
com.netscape.admin.certsrv.misc.HttpInputStream.fill(HttpInputStream.jav303)
        at
com.netscape.admin.certsrv.misc.HttpInputStream.readLine(HttpInputStream.jav224)
        at
com.netscape.admin.certsrv.connection.JSSConnection.readHeader(JSSConnection.jav439)
        at
com.netscape.admin.certsrv.connection.JSSConnection.initReadResponse(JSSConnection.jav430)
        at
com.netscape.admin.certsrv.connection.JSSConnection.sendRequest(JSSConnection.jav344)
        at
com.netscape.admin.certsrv.connection.AdminConnection.processRequest(AdminConnection.jav714)
        at
com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.jav623)
        at
com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.jav590)
        at
com.netscape.admin.certsrv.connection.AdminConnection.authType(AdminConnection.jav323)
        at
com.netscape.admin.certsrv.CMSServerInfo.getAuthType(CMSServerInfo.jav113)
        at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.jav499)
        at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.jav548)
        at com.netscape.admin.certsrv.Console.main(Console.jav1655)
问:

我尝试注册证书,收到错误 "request is not submitted…​Subject Name Not Found"?

答:

这大多数情况下,在自定义 LDAP 目录身份验证配置集中,它会显示目录操作失败。特别是,它失败,因为它无法构建正常工作的 DN。这个错误将位于 CA 的调试日志中。例如,此配置集使用了一个目录无法识别的自定义属性(MYATTRIBUTE):

[14/Feb/2011:15:52:25][http-1244-Processor24]: BasicProfile: populate() policy
setid =userCertSet
[14/Feb/2011:15:52:25][http-1244-Processor24]: AuthTokenSubjectNameDefault:
populate start
[14/Feb/2011:15:52:25][http-1244-Processor24]: AuthTokenSubjectNameDefault:
java.io.IOException: Unknown AVA keyword 'MYATTRIBUTE'.
[14/Feb/2011:15:52:25][http-1244-Processor24]: ProfileSubmitServlet: populate
Subject Name Not Found
[14/Feb/2011:15:52:25][http-1244-Processor24]: CMSServlet: curDate=Mon Feb 14
15:52:25 PST 2011 id=caProfileSubmit time=13

任何自定义组件 - 属性、对象类和未注册 OID - 在主题 DN 中使用的 OID 可能会导致失败。在大多数情况下,RHC 2253 中定义的 X.509 属性应在主题 DN 中使用,而不是自定义属性。

问:

为什么我的注册证书未发布?

答:

这通常表示 CA 错误配置。要查找错误的主要位置是 debug 日志,它可以指示错误配置的位置。例如,映射程序有问题:

[31/Jul/2010:11:18:29][Thread-29]: LdapSimpleMap: cert subject
dn:UID=me,E=me@example.com,CN=yes
[31/Jul/2010:11:18:29][Thread-29]: Error mapping:
mapper=com.netscape.cms.publish.mappers.LdapSimpleMap@258fdcd0 error=Cannot
find a match in the LDAP server for certificate. netscape.ldap.LDAPException:
error result (32); matchedDN = ou=people,c=test; No such object

在 CA 的 CS.cfg 文件中或 CA 控制台的 发布 选项卡中检查发布配置。在本例中,问题存在于 mapping 参数中,它必须指向 现有的 LDAP 后缀:

ca.publish.mapper.instance.LdapUserCertMap.dnPattern=UID=$subj.UID,dc=publish
问:

如何从远程主机打开 pkiconsole 工具?

答:

在某些情况下,管理员希望从远程主机打开证书系统服务器上的 pkiconsole。为此,管理员可以使用虚拟网络计算(VNC)连接:

  1. 例如,在 Red Hat Certificate System 服务器中设置 VNC 服务器。有关远程桌面访问的详情,请参考 Red Hat Enterprise Linux 8 文档中的 远程访问桌面

    重要

    pkiconsole 工具无法在启用了联邦信息处理标准(FIPS)模式的服务器上运行。如果在证书系统服务器上启用了 FIPS 模式,在 Red Hat Enterprise Linux 中使用其他主机来运行 VNC 服务器。请注意,这个工具将被弃用。

  2. 在 VNC 窗口中打开 pkiconsole 工具。例如:

    # pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/ca
注意

VNC viewer 可用于不同类型的操作系统。但是,红帽只支持从集成仓库在 Red Hat Enterprise Linux 中安装的 VNC viewer。

当 LDAP 服务器没有响应时,我该怎么办?

如果用于内部数据库的红帽目录服务器实例没有运行,则会出现连接问题或发生 TLS 连接失败,那么您无法连接到依赖它的子系统实例。实例调试日志会特别识别 LDAP 连接的问题。例如,如果 LDAP 服务器没有在线:

[02/Apr/2019:15:55:41][authorityMonitor]: authorityMonitor: failed to get LDAPConnection. Retrying in 1 second.
[02/Apr/2019:15:55:42][authorityMonitor]: In LdapBoundConnFactory::getConn()
[02/Apr/2019:15:55:42][authorityMonitor]: masterConn is null.
[02/Apr/2019:15:55:42][authorityMonitor]: makeConnection: errorIfDown true
[02/Apr/2019:15:55:42][authorityMonitor]: TCP Keep-Alive: true
java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.jav350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.jav206)
[02/Apr/2019:15:55:42][authorityMonitor]: Can't create master connection in LdapBoundConnFactory::getConn!
    Could not connect to LDAP server host example911.redhat.com port 389 Error netscape.ldap.LDAPException:
        Unable to create socket: java.net.ConnectException: Connection refused (Connection refused) (-1)

在修复底层网络问题(如未插入的电缆)后,红帽目录服务器会停止,发生大量数据包丢失,或者确保可以重新创建 TLS 连接,然后启动证书系统实例。

# systemctl stop pki-tomcatd-nuxwdog@<instance_name>.service
# systemctl start pki-tomcatd-nuxwdog@<instance_name>.service
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.