使用 SSL 保护 JAX-RS 客户机
您可以使用安全套接字层 (SSL) 传输层安全来保护 Java™ API for RESTful Web Services (JAX-RS) 应用程序与调用该应用程序的客户机之间的通信。
开始之前
此任务假定您已完成下列步骤:
- 已定义应用程序服务器或联合到网络 Deployment Manager 的应用程序服务器的单元概要文件。阅读关于创建单元概要文件的信息以了解如何创建包含联合应用程序服务器节点和 Deployment Manager 的单元概要文件。
- 您已将 JAX-RS 应用程序安装到应用程序服务器中。
关于此任务
如果您将 JAX-RS 应用程序配置为在启动 REST 资源时将 SSL 通道用于传输级别安全性,那么 JAX-RS 客户机需要使用 SSL 连接以使客户机可以与部署在 WebSphere® Application Server 环境中的 JAX-RS 资源交互。例如,如果 JAX-RS 应用程序配置来使用基本认证,那么常见的实践是使用 SSL 以便通过安全连接传输用户凭证。
为了说明此场景,假设您在单元中有一台应用程序服务器且您在此服务器上部署了 JAX-RS 资源。此服务器上的 JAX-RS 资源要求使用 SSL。假设您在使用 JAX-RS 的瘦客户机(本产品随附的一种基于 Java 的独立客户机)来调用需要使用 SSL 的其中一个安全资源。JAX-RS 的瘦客户机可使非 WebSphere 环境中运行的非受管 JAX-RS RESTful Web Service 客户机应用程序调用由应用程序服务器托管的 JAX-RS RESTful Web Service。
图 1. 使用 SSL 保护 JAX-RS 客户机

要点: 如果要从在 WebSphere Application Server 环境中运行的应用程序内调用 JAX-RS 资源(例如,在您进行下游调用时),那么不必对 SSL 进行附加配置。您无需为此资源配置 SSL 连接,因为使用了应用程序服务器 SSL 运行时和配置。
使用以下步骤为“针对 JAX-RS 的瘦客户机”配置 SSL。
过程
结果
您已使用 SSL 定义了客户机与目标服务器之间的安全连接,以实现 JAX-RS 应用程序与客户机之间通信的完整性和机密性。
示例
以下代码片段演示 ssl.client.props 文件样本:
# keystore information
com.ibm.ssl.keyStoreName=ClientDefaultKeyStore
com.ibm.ssl.keyStore=c:/jaxrs/test/config/keystore.p12
com.ibm.ssl.keyStorePassword=testpasswd
com.ibm.ssl.keyStoreType=PKCS12
com.ibm.ssl.keyStoreProvider=IBMJCE
com.ibm.ssl.keyStoreFileBased=true
# truststore information
com.ibm.ssl.trustStoreName=ClientDefaultTrustStore
com.ibm.ssl.trustStore= c:/jaxrs/test/config/truststore.p12
com.ibm.ssl.trustStorePassword=testpasswd
com.ibm.ssl.trustStoreType=PKCS12
com.ibm.ssl.trustStoreProvider=IBMJCE
com.ibm.ssl.trustStoreFileBased=true
com.ibm.ssl.trustStoreReadOnly=false
# Host name verification information
com.ibm.ssl.performURLHostNameVerification=false
com.ibm.ssl.validationEnabled=false