可以在 Liberty 中使用 SSL 客户机认证来配置 Web 应用程序。
关于此任务
如果服务器端请求客户端发送证书,那么会进行客户机证书认证。可以在 SSL 配置上为客户机证书认证配置 WebSphere® 服务器。要这样做,请将 ssl-1.0 Liberty 功能部件,以及要用于认证的密钥库信息告知给服务器的代码,添加到 server.xml 文件。
有关支持的 SSL 方面的详细信息,请参阅 Liberty 功能部件。
过程
- 确保 Web 应用程序的部署描述符将客户机证书认证指定为要使用的认证方法。
检查部署描述符是否包含下列元素:
<auth-method>CLIENT-CERT</auth-method>
注: 可以使用 Rational® Application Developer 等工具来创建部署描述符。
- 可选: 使用命令行生成 SSL 证书。请参阅securityUtility 命令。
- 通过将下列行添加到 server.xml 文件,配置服务器以启用 SSL 客户机认证:
<featureManager>
<feature>ssl-1.0</feature>
<featureManager>
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore" clientAuthenticationSupported="true" />
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password="defaultPWD" />
<keyStore id="defaultTrustStore" location="trust.jks" type="JKS" password="defaultPWD" />
- 如果指定 clientAuthentication="true",那么服务器会请求客户机发送证书。但是,如果客户机没有证书,或者服务器不信任证书,那么握手不成功。
- 如果指定 clientAuthenticationSupported="true",那么服务器会请求客户机发送证书。但是,如果客户机没有证书,或者服务器不信任证书,那么握手仍可能成功。
- 如果未指定 clientAuthentication 或 clientAuthenticationSupported,或者指定 clientAuthentication="false" 或 clientAuthenticationSupported="false",那么握手期间服务器不会请求客户机发送证书。
- 将客户机证书添加到浏览器。请参阅浏览器的文档,以了解如何添加客户机证书。
- 确保服务器信任所使用的任何客户机证书。
- 确保用于客户机认证的任何客户机证书已映射到注册表中的用户身份。
- 对于基本注册表,用户身份是证书的专有名称 (DN) 中的公共名 (CN)。
- 对于轻量级目录访问协议 (LDAP) 注册表,客户机证书中的 DN 必须位于 LDAP 注册表中。
- 如果客户机证书认证不成功,请将下列行添加到 server.xml 文件,以仅使用基本认证、用户标识和密码。
<webAppSecurity allowFailOverToBasicAuth="true" />
注: 如果指定 allowFailOverToBasicAuth="false" 或者未指定 allowFailOvertoBasicAuth,并且客户机证书认证不成功,那么请求会生成 403 认证错误消息,而且不会提示客户机进行基本认证。