打印

使用 WebSphere 配置 Web 服务安全性

创建密钥存储
为 Web 服务安全性生成密钥

为 EchoService 创建密钥

  • 在一行中键入下面的命令创建密钥对和自签署的公钥证书,以表示 EchoService:
    引用:
    keytool -genkey -v -alias echoservice -keypass echoservice -keystore echoservicekeys.jceks
            -storepass echoservicekeys -storetype jceks -dname \"cn=EchoService, o=ibm, c=us\" -keyalg \"RSA\"
    您将看到以下信息:
    引用:
    Generating 1,024 bit RSA key pair and self-signed certificate (MD5WithRSA)
            for: CN=EchoService, O=ibm, C=us
    [Saving echoservicekeys.jceks]
  • 通过键入下面的命令,导出服务器的公钥证书以将其导入到客户机存储中:
    引用:
    keytool -export -v -rfc -alias echoservice -file echoservice.cert -keystore echoservicekeys.jceks
            -storepass echoservicekeys -storetype jceks
    您将看到以下信息:
    引用:
    Certificate stored in file

TOP

创建密钥存储
创建信任存储

既然已经为 EchoService 客户机和 EchoSevice 创建了密钥存储,我们需要为客户机和服务器创建信任存储来建立信任域。
创建 EchoClient 密钥存储
现在需要使用客户机中的服务器公钥证书来为客户机创建密钥存储,这样我们就可以使用服务器的公钥验证来自服务器的签名,为服务器加密消息。为此,请键入下面的命令:
引用:
keytool -import -v -noprompt -alias echoservice -file echoservice.cert -keystore echoservicecerts.jceks
        -storepass echoservicecerts -storetype jceks
您将看到以下消息:
引用:
Certificate was added to keystore
[Saving echoservicecerts.jceks]
创建 EchoServer 密钥存储
我们需要使用服务器中的客户机公钥证书来为服务器创建密钥存储,这样我们就可以使用客户机的公钥验证来自客户机的签名,为客户机加密消息。为此,请键入下面的命令:
引用:
keytool -import -v -noprompt -alias echoserviceclient -file echoserviceclient.cert -keystore echoserviceclientcerts.jceks
        -storepass echoserviceclientcerts -storetype jceks
您将看到以下信息:
引用:
Certificate was added to keystore
[Saving echoservicclientecerts.jceks]
现在已经构建了配置我们的示例场景需要的所有密钥存储文件。下载部分附带的脚本完成了所有这些步骤。第一个版本适用于 Linux™/Unix® 平台,而第二个版本适用于 Windows™。

TOP

配置传输级安全性

既然已经创建了密钥存储,我们将为服务器和客户机配置安全性。在下面的示例中,我们将使用双向 SSL 向 Web 服务调用提供完整性和机密性。配置双向 SSL 以后我们将 UsernameToken 添加到 Web 服务安全性头中来提供身份验证。您可以看到,实际上,传输级安全性的服务器端配置只需遵循与保护常规 Web 应用程序承载的任何常规 URL 所用的步骤相同的步骤。

启用 Application Server 全局安全性

  • 在服务器列表中双击服务器,打开服务器配置编辑器。
  • 切换到 Security 选项卡并执行以下操作:
    ·选中 Enable security 复选框。
    ·指定 wasuser作为服务器 ID
    ·指定 wasuser作为服务器密码
    图 3. 启用安全性

  • 保存配置并重新启动服务器。

TOP

配置传输级安全性

配置企业应用程序安全性

  • 在 Web 透视图中,选择 EchoServiceWeb => Web Deployment Descriptor
  • 单击 Security 选项卡。
  • Security Roles 字段中,单击 Add 添加一个新的安全性角色。
  • 将该安全性角色命名为 EntityConnectingToEchoServiceUsingSSL
    图 4. 添加安全性角色

TOP

配置传输级安全性

配置企业应用程序安全性

  • 然后在 Security 页面上,从 Security Roles 选项卡切换到 Security Constraints 选项卡。
  • 单击 Add 添加一个新的安全性约束。
  • Web Resource Collections 部分中,选择缺省的 Web 资源集合 New Web Resource Collection,并单击 Edit
  • 按照以下步骤编辑集合:
    ·将名称设置为 EchoService
    ·选中所有的 HTTP 方法。
    ·添加服务 URL /services/EchoService(WSDL 中的 URL 不包含 Web 应用程序上下文根 (context root))。
    ·单击 OK



  • 图 5. 编辑 Web 资源集合

TOP

配置传输级安全性

配置企业应用程序安全性

  • Authorized Roles 部分中,单击 Edit 添加刚刚创建的角色 EntityConnectingToEchoServiceUsingSSL
  • User Data Constraint 字段中,将数据约束类型改为 Confidential
  • 切换到 Pages 选项卡并检查 Login 部分,确保将 Authentication Method 设置为 Unspecified
    图 6. 注册身份验证方法



如果希望基于传入的客户机证书建立 Application Server 安全上下文,则需要将身份验证方法设置为 Client-Cert。您必须在证书中使用一个有效的用户 DN 以使证书正常工作。未指定身份验证方法时,默认为 Basic,这意味着 Application Server 将在 HTTP 头中查找用户名和密码。

最初我们不会发送该信息,因此必须告诉 Application Server 我们正在保护的 URL 应该允许每一个人访问。在企业应用程序部署描述符中完成该操作,如下所示。

TOP

配置传输级安全性

配置企业应用程序安全性

  • 保存配置并关闭 Web 应用程序部署描述符编辑器。
  • 选择 EchoService => EAR Deployment Descriptor 编辑 EchoService 企业应用程序部署描述符。
  • 切换到 Security 选项卡并单击 Gather
  • 选择聚合角色 EntityConnectingToEchoServiceUsingSSL
  • 选中 WebSphere Bindings 下面的 Everyone。这将有效地禁止生成 J2EE 安全上下文,从而使我们不必在客户机证书中使用有效的用户名。
    图 7. 指定安全访问

  • 保存配置并关闭编辑器。

TOP

配置传输级安全性

创建 SSL 配置
在为 Application Server 创建 SSL 配置时,可以注意到不能指定密钥别名或密钥密码。从这里可以得出下面的结论:

  • 使用 SSL 的用于包含私钥的密钥存储应该只包含一个私钥(它可以包含其他的公钥证书)。
  • 密钥密码必须设置为密钥存储密码。

在 Application Developer 中创建 SSL 配置有两种方式:

  • 在应用服务器上启用管理控制台,然后使用控制台创建 SSL 配置。
  • 在应用服务器配置编辑器中添加 SSL 配置。
前者可以提供一些缺省信息,而使用后者时必须手动输入这些信息。我们将介绍第一种方法。

  • 在服务器透视图中,双击服务器列表中的服务器,打开配置编辑器。
  • 切换到 Configuration 选项卡。
  • 选中 Server Configuration 下面的 Enable administration console
    图 8. 启用管理控制台

TOP

配置传输级安全性

创建 SSL 配置


  • 保存配置并关闭编辑器。
  • 重新启动服务器。
  • 在服务器列表中右键单击服务器,选择 Run administrative console。如果出现安全警报,单击 Yes
  • 使用 wasuser 作为用户 ID 和密码,登录到管理控制台。
  • 在导航树中,选择 Security => SSL 可以看到 SSL 配置的列表。
  • 单击 New 创建一个新的 SSL 配置。
    图 9. SSL 配置

TOP

配置传输级安全性

创建 SSL 配置
按照以下操作填写新的 SSL 配置:

  • 指定一个与 Application Server 一致的别名;例如:WASServerSSL
  • 将密钥文件名设置为服务器 SSL 密钥文件的文件系统中的完整路径;例如:<path>/serversslkeys.jceks,其中<path>为密钥文件的位置。
  • 为密钥文件设置密码;例如:serversslkeys
  • 将密钥存储格式设置为适当的存储类型。编辑器将 JCEKS 类型称为 JCEK
  • 将信任文件名设置为服务器 SSL 信任文件的文件系统中的完整路径;例如 <path>/serverssltrusts.jceks,其中 <path> 为密钥文件的位置。
  • 设置信任文件的密码;例如 serverssltrusts
  • 设置信任文件的格式;例如,JCEK
  • 选择 Client authentication
  • 单击 OK 保存配置。请注意,只有单击屏幕顶部的 Save 时才会真正保存配置,但由于我们要对配置进行更多的修改,因此将在完成修改以后保存所有的更改。

图 10. SSL 配置

TOP


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

Designed By 17DST