第 21 章 故障排除


本章介绍了在安装证书系统时遇到的一些一些常见使用问题。
问:
初始化脚本返回一个 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.java:64)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:243)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:408)
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 设置为默认值。运行 alternatives --config java 以查看所选的 JRE。Red Hat Certificate System 需要 OpenJDK 1.8。
问:
我试图运行 pkiconsole,并在 stdout 中得到套接字例外。这是因为什么?
答:
这意味着存在端口问题。管理端口有不正确的 SSL 设置(例如,server.xml中存在错误的配置),或者给出了错误的端口来访问管理界面。
端口错误类似如下:
NSS Cipher Supported '0xff04'
java.io.IOException: SocketException cannot read on socket
        at org.mozilla.jss.ssl.SSLSocket.read(SSLSocket.java:1006)
        at org.mozilla.jss.ssl.SSLInputStream.read(SSLInputStream.java:70)
        at
com.netscape.admin.certsrv.misc.HttpInputStream.fill(HttpInputStream.java:303)
        at
com.netscape.admin.certsrv.misc.HttpInputStream.readLine(HttpInputStream.java:224)
        at
com.netscape.admin.certsrv.connection.JSSConnection.readHeader(JSSConnection.java:439)
        at
com.netscape.admin.certsrv.connection.JSSConnection.initReadResponse(JSSConnection.java:430)
        at
com.netscape.admin.certsrv.connection.JSSConnection.sendRequest(JSSConnection.java:344)
        at
com.netscape.admin.certsrv.connection.AdminConnection.processRequest(AdminConnection.java:714)
        at
com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.java:623)
        at
com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.java:590)
        at
com.netscape.admin.certsrv.connection.AdminConnection.authType(AdminConnection.java:323)
        at
com.netscape.admin.certsrv.CMSServerInfo.getAuthType(CMSServerInfo.java:113)
        at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.java:499)
        at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.java:548)
        at com.netscape.admin.certsrv.Console.main(Console.java:1655)
问:
我尝试注册证书,我收到错误 "request is not commit...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 中使用的这些组件都可能会导致失败。在大多数情况下,RHC 2253 中定义的 X.509 属性应该在主题 DN 中使用,而不是使用自定义属性。
问:
为什么我的注册的证书没有被发布?
答:
这通常表示 CA 被错误配置。要查找错误的主要位置是 调试日志,它可以指示错误配置的位置。例如,这在映射程序中存在问题:
[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 控制台的 Publishing 选项卡中检查发布配置。在本例中,问题位于 mapping 参数中,它必须指向 现有的 LDAP 后缀:
ca.publish.mapper.instance.LdapUserCertMap.dnPattern=UID=$subj.UID,dc=publish
问:
如何从远程主机打开 pkiconsole 工具?
答:
在某些情况下,管理员希望从远程主机在证书系统服务器上打开 pkiconsole。为此,管理员可以使用虚拟网络计算(VNC)连接:
  1. 设置 VNC 服务器,例如在 Red Hat Certificate System 服务器中。有关远程桌面访问的详情,请查看 RHEL 8 文档中的 相关部分
    重要
    pkiconsole 工具无法在启用了联邦信息处理标准(FIPS)模式的服务器上运行。如果您的证书系统服务器上启用了 FIPS 模式,请使用 Red Hat Enterprise Linux 的不同主机来运行 VNC 服务器。请注意,这个工具将被弃用。
  2. 在 VNC 窗口中打开 pkiconsole 工具。例如:
    # pkiconsole https://server.example.com:8443/ca
注意
VNC viewer 可用于不同类型的操作系统。但是,红帽只支持从集成的软件仓库在 Red Hat Enterprise Linux 中安装 VNC viewer。
问:
当 LDAP 服务器没有响应时,我该怎么办?
答:
如果用于内部数据库的 Red Hat Directory Server 实例没有运行,则会出现连接问题,或者发生 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.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
[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.