安全性的 SSL 错误

在配置或启用安全套接字层 (SSL) 之后,您可能会遇到各种问题。在配置 SSL 之后,您可能无法停止 Deployment Manager。您可能无法使用 HTTPS 访问资源。客户机和服务器可能无法通过正确的安全性级别。此处提到的问题只是少数可能性。解决这些问题对于 WebSphere® Application Server 能否成功操作非常必要。

您遇到的是哪类问题?

配置安全套接字层后停止 Deployment Manager

配置安全套接字层指令表后,如果您停止 Deployment Manager 但未同时停止 Node Agent,那么您在重新启动 Deployment Manager 时可能接收到以下错误消息:

CWWMU0509I: The server "nodeagent" cannot be reached. It appears to be stopped.
CWWMU0211I: Error details may be seen in the file:
           /opt/WebSphere/AppServer/logs/nodeagent/stopServer.log

发生此错误的原因是 Deployment Manager 未将新 SSL 证书传播到 Node Agent。Node Agent 使用的证书比 Deployment Manager 的证书旧,且这两个证书文件不兼容。此问题的变通方法是,您必须手动停止 Node Agent 和 Deployment Manager 进程。

[Windows]要结束进程,使用任务管理器。

[AIX HP-UX Solaris]运行命令以结束进程

[z/OS]要结束进程,请使用 MVS™ 控制台并输入 c process_name

[AIX Solaris HP-UX Linux Windows][z/OS]标识要停止的特定进程时有几点需要注意。对于停止的每个线程,WebSphere Application Server 将进程标识存储在 pid 文件中,并且您需要查找这些 *.pid 文件。例如,可以在以下位置中找到独立安装的 server1.pidinstall_root/logs/server1.pid

[IBM i]标识要停止的特定进程时有几点需要注意。对于停止的每个线程,WebSphere Application Server 将进程标识存储在 pid 文件中,并且您需要查找这些 *.pid 文件。例如,可在以下位置中找到独立安装的 server1.pidapp_server_root/logs/server1.pid

[AIX Solaris HP-UX Linux Windows][z/OS]

使用 HTTPS 访问资源

如果无法使用安全套接字层 (SSL) URL(以 https: 开头)访问资源,或者遇到指示 SSL 问题的错误消息,那么验证是否为 SSL 正确配置 HTTP Server。使用 SSL 通过输入以下 URL 浏览 HTTP Server 的欢迎页面:https://host_name

如果此页面使用 HTTP,而不是 HTTPS,那么说明 HTTP Server 有问题。
  • 请参阅您 HTTP Server 的文档,以了解有关正确启用 SSL 的指示信息。如果使用的是 IBM® HTTP Server 或 Apache,请转至:http://www.ibm.com/software/webservers/httpservers/library.html。单击常见问题 > SSL
  • 如果使用 IBM 密钥管理 (IKeyman) 工具创建证书和密钥,那么记得在使用 IBM 密钥管理工具创建密钥数据库 (KDB) 文件时将密码存储在文件中。
    1. 转至创建 KDB 文件的目录,并查看是否存在 .sth 文件。
    2. 如果没有,请使用 IBM 密钥管理工具打开 KDB 文件,并单击密钥数据库文件 > 存储密码。会显示以下消息:密码已加密并保存在文件中

如果 HTTP Server 成功处理 SSL 加密的请求,或者未涉及此 HTTP Server(例如,通信直接从 Java™ 客户机应用程序流到由 WebSphere Application Server 主管的企业 Bean,或者只有在启用 WebSphere Application Server 安全性后才出现问题),您遇到的是哪类错误?

[z/OS]系统 SSL:请参阅 z/OS® System Secure Sockets Layer Programming SC24-5901,以了解有关使用系统安全套接字层 (SSL) 可调用服务编程接口的信息。

[AIX Solaris HP-UX Linux Windows][IBM i]在以编程方式创建凭证时,您可以获得此错误消息 org.omg.CORBA.INTERNAL: EntryNotFoundException 或 NTRegistryImp E CWSCJ0070E: 未配置特权标识:

有关诊断和解决与安全性相关的问题的一般技巧,请参阅安全性组件故障诊断技巧

如果没有看到与您的问题类似的问题,或所提供的信息未解决您的问题,请参阅来自 IBM 的故障诊断帮助

javax.net.ssl.SSLHandshakeException - 客户机和服务器无法通过期望的安全性级别。原因:握手故障

如果您看到类似于以下示例的 Java 异常堆栈:
[Root exception is org.omg.CORBA.TRANSIENT:  CAUGHT_EXCEPTION_WHILE_CONFIGURING_
SSL_CLIENT_SOCKET: CWWJE0080E:   javax.net.ssl.SSLHandshakeException - The client
and server could not negotiate the desired level of   security. Reason: handshake 
failure:host=MYSERVER,port=1079 minor code: 4942F303 completed: No]   at 
com.ibm.CORBA.transport.TransportConnectionBase.connect 
(TransportConnectionBase.java:NNN)
一些可能的原因是:
  • 在客户机和服务器之间没有公共密码。
  • 未指定正确的协议。
要解决这些问题,请执行以下操作:
  1. [AIX Solaris HP-UX Linux Windows][z/OS]复审 SSL 设置。在管理控制台中,单击安全性 > SSL 证书和密钥管理。在“配置设置”下面,单击管理端点安全性配置 > endpoint_configuration_name。在“相关项”下面,单击 SSL 配置 > SSL_configuration_name。还可以通过查看 install_root/properties/sas.client.props 文件来手动浏览文件。
  2. [IBM i]复审 SSL 设置。在管理控制台中,单击安全性 > SSL 证书和密钥管理。在“配置设置”下面,单击管理端点安全性配置 > endpoint_configuration_name。在“相关项”下面,单击 SSL 配置 > SSL_configuration_name。还可以通过查看 app_server_root/properties/sas.client.props 文件来手动浏览文件。
  3. 检查 com.ibm.ssl.protocol 文件指定的属性以确定指定哪一个协议。
  4. 检查 com.ibm.ssl.enabledCipherSuites 接口指定的密码类型。您可能要将更多的密码类型添加到列表中。要查看当前启用了哪些密码套件,单击保护质量设置 (QoP),然后查找密码套件属性。
  5. 通过使用不同的客户机或服务器协议和密码选择,更正协议或密码问题。典型协议是 SSL 或 SSLv3。
  6. [AIX Solaris HP-UX Linux Windows][IBM i]使密码选择成为 40 位而不是 128 位。对于公共安全互操作性版本 2 (CSIv2),在 sas.client.props 文件中将下列属性都设为 false,或者在管理控制台设置中设置 security level=medium
    • com.ibm.CSI.performMessageConfidentialityRequired=false
    • com.ibm.CSI.performMessageConfidentialitySupported=false

javax.net.ssl.SSLHandshakeException:未知证书

如果您看到类似于以下示例的 Java 异常堆栈,那么它可能是由于在客户机信任密钥库文件中没有服务器的个人证书而导致:
ERROR: Could not get the initial context or unable to look up the starting context. 
Exiting.  Exception received: javax.naming.ServiceUnavailableException: A 
communication failure occurred while attempting to obtain an initial context using 
the provider url: "corbaloc:iiop:localhost:2809". Make sure that the host and port 
information is correct and that the server identified by the provider url is a 
running name server. If no port number is specified, the default port number 2809 
is used. Other possible causes include the network environment or workstation 
network configuration. [Root exception is org.omg.CORBA.TRANSIENT: 
CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_CLIENT_SOCKET: CWWJE0080E: 
javax.net.ssl.SSLHandshakeException - The client and server could not 
negotiate the desired level of security. Reason: unknown 
certificate:host=MYSERVER,port=1940 minor code: 4942F303 completed: No]
要解决此问题,请执行以下操作:
  1. 检查客户机信任库文件以确定是否存在来自服务器个人证书的签署者证书。对于自签署服务器个人证书,签署者证书是个人证书的公用密钥。对于认证中心 (CA) 签署的服务器个人证书,签署者证书是签署个人证书的 CA 的根 CA 证书。
  2. 将服务器签署者证书添加到客户机信任库文件。

javax.net.ssl.SSLHandshakeException:错误证书

如果出现下列情况,那么可能会显示 Java 异常堆栈错误:
  • 用于 SSL 相互认证的客户机密钥库中存在个人证书。
  • 未将签署者证书抽取到服务器信任库文件中,因此,进行 SSL 握手时,服务器不能信任证书。
下面的消息是 Java 异常堆栈错误的一个示例:
ERROR: Could not get the initial context or unable to look 
up the starting context. Exiting.  
Exception received: javax.naming.ServiceUnavailableException: 
A communication failure occurred while attempting to obtain an 
initial context using the provider url: "corbaloc:iiop:localhost:2809". 
Make sure that the host and port information is correct and that the
server identified by the provider url is a running name 
server. If no port number is specified, the default port number 2809 
is used. Other possible causes include the network environment or 
workstation network configuration. 
[Root exception is org.omg.CORBA.TRANSIENT: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_
CLIENT_SOCKET: CWWJE0080E: javax.net.ssl.SSLHandshakeException - The client and 
server could not negotiate the desired level of security. Reason: 
bad certificate: host=MYSERVER,port=1940 minor code: 4942F303 completed: No]

要验证此问题,检查服务器信任库文件以确定是否存在来自客户机个人证书的签署者证书。对于自签署客户机个人证书,签署者证书是个人证书的公用密钥。对于认证中心签署的客户机个人证书,签署者证书是签署个人证书的 CA 的根 CA 证书。

要解决此问题,将客户机签署者证书添加到服务器信任库文件。

[AIX Solaris HP-UX Linux Windows][IBM i]

org.omg.CORBA.INTERNAL:EntryNotFoundException 或 NTRegistryImp E CWSCJ0070E: 未配置特权标识:在程序化创建凭证时发生错误

如果您在尝试使用 SSL 相互认证从 WebSphere Application Server 请求凭证时,在客户机应用程序中遇到下列异常:
ERROR: Could not get the initial context or unable to look up the starting context. 
Exiting. Exception received: org.omg.CORBA.INTERNAL: Trace from server: 1198777258 
at host MYHOST on port 0 >>org.omg.CORBA.INTERNAL: EntryNotFoundException minor 
code: 494210B0 completed: 
No at com.ibm.ISecurityLocalObjectBaseL13Impl.PrincipalAuthFailReason.
map_auth_fail_to_minor_code(PrincipalAuthFailReason.java:99)
或者同时来自 WebSphere Application Server 的一个错误,它类似于:
[7/31/02 15:38:48:452 CDT] 27318f5 NTRegistryImp E CWSCJ0070E: No privilege id configured for: testuser

原因可能是客户机发送给服务器的用户标识不在此服务器的用户注册表中。

要确认问题所在,检查存在发送到服务器的个人证书的项。根据用户注册表机制,查看本机操作系统用户标识或轻量级目录访问协议 (LDAP) 服务器项。

要解决此问题,将用户标识添加到个人证书标识的用户注册表项(例如,操作系统、LDAP 目录或其他定制注册表)。

GUI 应用程序客户机中的“Catalog”图形输入板为空白(未显示项)

安装使用 PlantsByWebSphere Active X 到 EJB 网桥的 ActiveX 客户机样本应用程序时,会出现此错误消息。

这是因为服务器证书不在 client.ssl.props 文件中指定的客户机信任密钥库中。虽然“com.ibm.ssl.enableSignerExchangePrompt”签署者属性可能设为 true,但自动交换提示只支持命令行提示。如果样本应用程序依赖于图形用户界面并且不提供对命令提示符的访问(例如,使用标准输入和标准输出),那么自动交换提示不起作用。

注: “客户机技术样本”下面的 Applet 客户机无权访问命令提示符,并且它看不到自动交换提示。因此,Applet 客户机不能依赖于自动交换提示功能。

要解决此问题,请使用 retrieveSigners 实用程序手动检索证书。

使用 -scriptCompatibility true 迁移后修改 SSL 配置

使用 scriptCompatibility true 进行迁移之后,无法通过管理控制台来编辑 SSL 配置的所有属性。尤其是,无法显示或编辑硬件密码设置。

使用 scriptCompatibility true 标志并不会将 SSL 配置迁移到 V6.1 及更高发行版中支持的新格式。在未将配置迁移到最新格式的情况下,添加了不支持的新功能。如果要从 V6.1 以前的发行版迁移,那么可以使用 convertSSLConfig 任务将 SSL 配置信息转换为集中的 SSL 配置格式。

使用 NOTRUST 选项定义数字证书时独立配置失败

如果使用 NOTRUST 选项定义数字证书,那么您可能会接收到以下错误消息:

Trace: 2008/06/18 16:57:57.798 01 t=8C50B8 c=UNK key=S2 (0000000A) 
Description: Log Boss/390 Error 
from filename: ./bbgcfcom.cpp 
at line: 376 
error message: BBOO0042E Function AsynchIOaccept failed with RV=-1, RC=124, RSN=050B0146, ?EDC5124I 
Too many open files. (errno2=0x0594003D)?? 

如果出现此错误,请输入 'D OMVS,P。如果具有 NOTRUST 问题,那么“OPNSOCK”下会出现一个大数字。

请检查数字证书,并确保它们未标有 NOTRUST 选项。如果创建证书的日期超出用来创建该证书的 CERTAUTH 的截止日期,那么可能会发生此错误。

在使用 SSL 的情况下配置 LDAP 存储库时出现问题

在使用 SSL 的情况下配置 LDAP 存储库时,必须在节点向管理代理程序注册之前在该节点上配置 LDAP 存储库。

如果尝试在节点向代理程序注册之后配置 LDAP 存储库,那么联合存储库将在管理代理程序的信任库(而不是节点的信任库)中查找 SSL 证书。

为 SHA384withECDSA 创建链式证书时出现问题

如果您有已转换为 SHA384withECDSA 的证书,并在管理控制台中尝试通过单击 SSL 证书和密钥管理 -> 密钥库和证书 -> 密钥库 > 个人证书创建链式证书,然后创建新的链式证书,那么支持的密钥大小应该为 384。如果不是此值,那么无法创建该证书。

要解决此问题,请启用 JavaScript 以便在面板上显示正确的密钥大小。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_sslprobs
文件名:rtrb_sslprobs.html