打印

使用 WebSphere 配置 Web 服务安全性

配置传输级安全性

配置 Web 容器
现在需要设置 Web 容器以在 HTTPS 端口使用新的 SSL 配置。在管理控制台,按照以下步骤进行设置:

  • 选择 Servers => Application Servers
  • 在服务器列表中选择 server1
  • Additional Properties 下面,选择 Web Container
    图 10. 选择 Web 容器

TOP

配置传输级安全性

配置 Web 容器


  • Additional Properties 下面,选择 HTTP Transports
    图 11. 选择 HTTP 传输

    可以将 Application Server 配置为在端口 9443 上通过 SSL 公开应用程序。在这里,可以创建新的传输定义并侦听另一个端口,但现在我们只在端口 9443 上修改 SSL 配置。

TOP

配置传输级安全性

配置 Web 容器
选择与端口 9443 关联的主机名。缺省值为 *,它表示接受任何主机名。
图 12. 选择主机名

TOP

配置传输级安全性

配置 Web 容器

  • 为该传输更改 SSL 配置以使用新的 SSL 配置 localhost/WASServerSSL。请注意,管理控制台将 localhost/ 作为提供给 SSL 配置的名称的前缀。
    图 13. 指定 SSL 配置

  • 单击 OK
  • 在屏幕顶部单击 Save 链接,保存配置更改。
  • 单击 Save,将这些更改写入配置文件中。

TOP

配置基于 Application Server 的客户机

基于 Application Server 的客户机是运行于 Application Server 容器内部的 Web 服务客户机。这样的客户机有 Servlet、JSP 和 EJB。完成以下部分中的步骤来配置基于 Application Server 的 Web 服务客户机,以将 SSL 用于客户机到服务的连接。在我们的示例场景中,基于 Application Server 的客户机是在 com.ibm.issw Java 包中的 EchoServiceClientWeb Web 应用程序中实现的 Servlet。我们将使用 Application Developer 对示例场景代码做一些更改。

更改服务端点

有两种方法可以更改客户机用于调用服务的端点。第一种方法是修改生成的 Locator 类。然而,这不是一个很好的策略,因为重新生成代理时该类将被重写。更好的方法是,实例化 setEndpoint() 后在代理上调用它。

  • 在 Java 透视图中,选择 EchoServiceClientWeb => com.ibm.issw => TestServlet
  • 创建代理对象后在代码中添加一行代码,以在代理对象上调用 setEndpoint(),如下所示。
    图 14. 修改代码以调用 setEndpoint()

TOP

配置基于 Application Server 的客户机

更改服务端点


  • 要获取一个有好的开头的 URL 来传递给 setEndpoint(),可以打开所生成的 Locator 类并查找私有最终字符串 echoService_address。
  • 选择地址字符串并将其复制到剪贴板。
    图 15. 获取 URL 地址

TOP

配置基于 Application Server 的客户机

更改服务端点


  • 切换回 TestServlet 代码并将地址粘贴到对 setEndpoint() 的调用,然后做如下修改:
    ·将协议更改为 https。
    ·将端口更改为 9443。代码行应该如下所示:
    引用:
    proxy.setEndpoint (\\\"https://localhost:9443/EchoServiceWeb/services/EchoService\\\";
    如下图所示:
    图 16. 修改 TestServlet 代码



  • 保存 TestServlet 代码。

TOP

[B]配置基于 Application Server 的客户机[/B]

[B]创建 SSL 配置[/B]


现在我们需要为客户机创建 SSL 配置,以将其用于与服务器进行通信。在为 Application Server 创建 SSL 配置时,可以注意到不能指定密钥别名或密钥密码。从这里可以看出,使用 SSL 的用于包含私钥的密钥存储应该只包含一个私钥(它可以包含其他的公钥证书)。还可以看出,必须将密钥密码设置为密钥存储密码。本练习的步骤与服务器端所用的步骤类似,如下所示:

  • 使用 wasuser 作为用户 ID 和密码登录到管理控制台。请注意,您可能已从服务器端的先前配置登录了。
  • 在导航树中,选择 Security => SSL 可以看到 SSL 配置的列表。
  • 单击 New 创建一个新的 SSL 配置。
  • 按照以下操作填写新的 SSL 配置:
    ·将别名设置为一个与 Application Server 一致的名称;例如,WASClientSSL
    ·将密钥文件名设置为服务器 SSL 密钥文件的文件系统中的完整路径;例如,<path>/clientsslkeys.jceks,其中<path>为密钥文件的位置。
    ·为密钥文件设置密码;例如,clientsslkeys
    ·将密钥存储格式设置为适当的存储类型。编辑器将 JCEKS 类型称为 JCEK
    ·将信任文件名设置为服务器 SSL 信任文件的文件系统中的完整路径;例如,<path>/clientssltrusts.jceks,其中<path>为密钥文件的位置。
    ·设置信任文件的密码;例如,clientssltrusts
    ·设置信任文件的格式;例如:JCEK
    ·单击 OK
    ·单击屏幕顶部的 Save
    ·单击 Save
    图 17. 配置 SSL

TOP

[B]配置基于 Application Server 的客户机[/B]

配置 Web 服务部署描述符
既然为客户机创建了 SSL 配置,我们需要告诉 Application Server Web 服务客户机存根调用服务时使用它。为此,我们将指向 SSL 配置的引用添加到 Web 服务客户机部署描述符文件中。

  • 在 Web 透视图中,选择 EchoServiceClientWeb => Web Content => WEB-INF => wsdl => webservicesclient.xml
  • 切换到 Port Bindings 选项卡。
  • Port Qualified Name Binding Details 部分中,在 HTTP SSL configuration name 字段中输入 localhost/WASClientSSL。请注意,通过管理控制台添加 SSL 配置时,localhost/ 为指定的 SSL 配置的名称的前缀。
    图 18. 配置 Web 服务部署描述符

  • 重新启动服务器。
  • 现在通过使用 URL (http://localhost:9080/EchoServiceClientWeb/TestServlet) 调用 TestServlet,可以测试基于 Application Server 的客户机与服务的连接。

TOP

配置非基于 Application Server 的客户机

非基于 Application Server 的客户机是在 Application Server 容器外运行的客户机。这样的客户机有托管 J2EE 客户机应用程序和单机版 J2SE Java 应用程序。

更改服务端点

有两种方法可以更改客户机用于调用服务的端点。第一种方法是修改生成的 Locator 类。然而,这不是一个很好的策略,因为重新生成代理时该类将被重写。更好的方法是,实例化 setEndpoint() 后在代理上调用它。为此,按照以下步骤进行操作:

  • 在 Java 透视图中,选择 EchoServiceJ2SEClient => com.ibm.issw => TestClient.java
  • 创建代理对象后在代码中添加一行代码,以在代理对象上调用 setEndpoint()。
  • 要获取一个有好的开头的 URL 来传递给 setEndpoint(),可以打开所生成的 Locator 类并查找私有最终字符串 echoService_address。
  • 选择地址字符串并将其复制到剪贴板。
  • 切换回 TestClient 代码并将地址粘贴到对 setEndpoint() 的调用,然后做如下修改:
    ·将协议更改为 https。
    ·将端口更改为 9443。
    ·代码行应该如下所示:
    引用:
    proxy.setEndpoint(\\\"https://localhost:9443/EchoServiceWeb/services/EchoService\\\";
    如下图所示:
    图 19. 配置服务端点

  • 保存 TestClient 代码。

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-11-22 00:33 京ICP证060528 号

Designed By 17DST