安全性的 SSL 错误
在配置或启用安全套接字层 (SSL) 之后,您可能会遇到各种问题。在配置 SSL 之后,您可能无法停止 Deployment Manager。您可能无法使用 HTTPS 访问资源。客户机和服务器可能无法通过正确的安全性级别。此处提到的问题只是少数可能性。解决这些问题对于 WebSphere® Application Server 能否成功操作非常必要。
您遇到的是哪类问题?
- 配置安全套接字层后停止 Deployment Manager
使用 HTTPS 访问资源
- javax.net.ssl.SSLHandshakeException - 客户机和服务器无法通过期望的安全性级别。原因:握手故障
- javax.net.ssl.SSLHandshakeException:未知证书
- javax.net.ssl.SSLHandshakeException:错误证书
org.omg.CORBA.INTERNAL:EntryNotFoundException 或 NTRegistryImp E CWSCJ0070E: 未配置特权标识:在程序化创建凭证时发生错误
- GUI 应用程序客户机中的“Catalog”图形输入板为空白(未显示项)
- 使用 -scriptCompatibility true 迁移后修改 SSL 配置
- 使用 NOTRUST 选项定义数字证书时独立配置失败
- 在使用 SSL 的情况下配置 LDAP 存储库时出现问题
- 为 SHA384withECDSA 创建链式证书时出现问题
配置安全套接字层后停止 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 进程。
要结束进程,使用任务管理器。
运行命令以结束进程
要结束进程,请使用 MVS™ 控制台并输入 c process_name。
标识要停止的特定进程时有几点需要注意。对于停止的每个线程,WebSphere Application Server 将进程标识存储在 pid 文件中,并且您需要查找这些 *.pid 文件。例如,可以在以下位置中找到独立安装的
server1.pid:install_root/logs/server1.pid
标识要停止的特定进程时有几点需要注意。对于停止的每个线程,WebSphere Application Server 将进程标识存储在 pid 文件中,并且您需要查找这些 *.pid 文件。例如,可在以下位置中找到独立安装的
server1.pid:app_server_root/logs/server1.pid
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
使用 HTTPS 访问资源
如果无法使用安全套接字层 (SSL) URL(以 https: 开头)访问资源,或者遇到指示 SSL 问题的错误消息,那么验证是否为 SSL 正确配置 HTTP Server。使用 SSL 通过输入以下 URL 浏览 HTTP Server 的欢迎页面:https://host_name。
- 请参阅您 HTTP Server 的文档,以了解有关正确启用 SSL 的指示信息。如果使用的是 IBM® HTTP Server 或 Apache,请转至:http://www.ibm.com/software/webservers/httpservers/library.html。单击常见问题 > SSL。
- 如果使用 IBM 密钥管理 (IKeyman) 工具创建证书和密钥,那么记得在使用 IBM 密钥管理工具创建密钥数据库 (KDB) 文件时将密码存储在文件中。
- 转至创建 KDB 文件的目录,并查看是否存在 .sth 文件。
- 如果没有,请使用 IBM 密钥管理工具打开 KDB 文件,并单击密钥数据库文件 > 存储密码。会显示以下消息:密码已加密并保存在文件中。
如果 HTTP Server 成功处理 SSL 加密的请求,或者未涉及此 HTTP Server(例如,通信直接从 Java™ 客户机应用程序流到由 WebSphere Application Server 主管的企业 Bean,或者只有在启用 WebSphere Application Server 安全性后才出现问题),您遇到的是哪类错误?
系统 SSL:请参阅 z/OS® System Secure Sockets Layer Programming SC24-5901,以了解有关使用系统安全套接字层 (SSL) 可调用服务编程接口的信息。
在以编程方式创建凭证时,您可以获得此错误消息 org.omg.CORBA.INTERNAL:
EntryNotFoundException 或 NTRegistryImp E CWSCJ0070E: 未配置特权标识:
有关诊断和解决与安全性相关的问题的一般技巧,请参阅安全性组件故障诊断技巧
如果没有看到与您的问题类似的问题,或所提供的信息未解决您的问题,请参阅来自 IBM 的故障诊断帮助
javax.net.ssl.SSLHandshakeException - 客户机和服务器无法通过期望的安全性级别。原因:握手故障
[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)
- 在客户机和服务器之间没有公共密码。
- 未指定正确的协议。
复审 SSL 设置。在管理控制台中,单击安全性 > SSL 证书和密钥管理。在“配置设置”下面,单击管理端点安全性配置 > endpoint_configuration_name。在“相关项”下面,单击 SSL 配置 > SSL_configuration_name。还可以通过查看 install_root/properties/sas.client.props 文件来手动浏览文件。
复审 SSL 设置。在管理控制台中,单击安全性 > SSL 证书和密钥管理。在“配置设置”下面,单击管理端点安全性配置 > endpoint_configuration_name。在“相关项”下面,单击 SSL 配置 > SSL_configuration_name。还可以通过查看 app_server_root/properties/sas.client.props 文件来手动浏览文件。
- 检查 com.ibm.ssl.protocol 文件指定的属性以确定指定哪一个协议。
- 检查 com.ibm.ssl.enabledCipherSuites 接口指定的密码类型。您可能要将更多的密码类型添加到列表中。要查看当前启用了哪些密码套件,单击保护质量设置 (QoP),然后查找密码套件属性。
- 通过使用不同的客户机或服务器协议和密码选择,更正协议或密码问题。典型协议是 SSL 或 SSLv3。
使密码选择成为 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:未知证书
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]
- 检查客户机信任库文件以确定是否存在来自服务器个人证书的签署者证书。对于自签署服务器个人证书,签署者证书是个人证书的公用密钥。对于认证中心 (CA) 签署的服务器个人证书,签署者证书是签署个人证书的 CA 的根 CA 证书。
- 将服务器签署者证书添加到客户机信任库文件。
javax.net.ssl.SSLHandshakeException:错误证书
- 用于 SSL 相互认证的客户机密钥库中存在个人证书。
- 未将签署者证书抽取到服务器信任库文件中,因此,进行 SSL 握手时,服务器不能信任证书。
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]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
org.omg.CORBA.INTERNAL:EntryNotFoundException 或 NTRegistryImp E CWSCJ0070E: 未配置特权标识:在程序化创建凭证时发生错误
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)
[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,但自动交换提示只支持命令行提示。如果样本应用程序依赖于图形用户界面并且不提供对命令提示符的访问(例如,使用标准输入和标准输出),那么自动交换提示不起作用。
要解决此问题,请使用 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 以便在面板上显示正确的密钥大小。