利用 WebSphere DataPower SOA Appliances 功能加密机密数据
要对 XML 文档的内容进行签名,您需要一个私钥和一个公开证书。在大多数情况下,受信任的证书颁发机构将为您提供证书/密钥对。如果您希望为测试目的自己生成证书/密钥对,则可以执行以下操作之一:
*直接使用 WebSphere DataPower SOA Appliances 的 Crypto Tools 生成证书/密钥对。
*通过 Java 密钥工具生成证书/密钥对,然后将其上传到 WebSphere DataPower SOA Appliances。
下一节将探讨这两种方法。如果已经具备要使用的私钥和公钥,请跳到将证书上传到 WebSphere DataPower SOA Appliances 设备部分。
使用 WebSphere DataPower SOA Appliances 加密工具构建证书
WebSphere DataPower SOA Appliances 提供了一些加密工具,通过这些工具可以生成自签名证书和私钥。稍后可以通过文件管理实用工具从 WebSphere DataPower SOA Appliances 下载这些工具。要创建证书,请执行下列操作:
1.登录到 WebSphere DataPower SOA Appliances 设备。指向设备的 URL 通常为 https://servername:9090/,但是您可能需要向 WebSphere DataPower SOA Appliances 管理员验证该地址。
2.分别输入用户 ID 和密码。
3.选择域,然后单击 Login。
4.在控制面板中,单击左侧导航窗格中的 Administration 选项卡。
5.在 Administration 选项卡的底部,选择 Crypto Tools。
6.在 Generate Key 区域中,填写 Common Name 和 Object Name 字段。对象名代表证书的别名,在每次使用证书(如执行加密)时必须提供此名称。
7.确保 Password Alias 文本字段中的所有单选按钮都设置为 on。
8.如图 2 所示,提供有关证书/密钥对的任何可选信息。
图 2. 使用 Crypto Tools 生成证书/密钥对

9.单击 Generate Key。WebSphere DataPower SOA Appliances 将生成一个自签名证书和一个私钥,并将二者存储在临时文件夹中。稍后可以通过文件管理实用工具从 WebSphere DataPower SOA Appliances 下载它们。
需要重点强调的是,生成的证书和私钥的格式都是 .pem,因此必须通过 Open-SSL 工具转换此格式才能将其导入到任意 Java 密钥存储库。
使用 WebSphere DataPower SOA Appliances 加密工具上传现有证书
如果希望仅使用 WebSphere DataPower SOA Appliances 加密数据并希望使用基于 Java 的应用程序执行解密(本系列文章中使用的就是这种方法),则最好使用密钥工具生成证书/私钥对,然后仅将证书上传到 WebSphere DataPower SOA Appliances。这样,解密应用程序就不需要转换证书和私钥。您可以将证书导入 WebSphere DataPower SOA Appliances 以供以后加密使用。
回到本文提供的场景,假设每个服务提供者都有自己的证书,并将其证书发布到预约系统,该系统负责将证书上传到 WebSphere DataPower SOA Appliances。为简单起见,本示例使用了自签名证书,但在真正的环境中,每个服务提供者显然都应有证书颁发机构(如 VeriSign)颁发的证书。
要生成自签名证书,只需将 Java Development Toolkit 安装在您的计算机上。这样您可以方便地切换到 java/bin 路径并运行 keytool 命令,提供有关每个服务提供者的必要信息,方法与清单 1 中为名为 ASL1 的通用卫生服务提供者提供的信息类似。
清单 4. 示例命令
keytool -genkey -alias ASL1_cert -key alg RSA -validity 365 -keystore signer.jks
-storepass signer -dname "CN=AS L1, OU=Development, O=Health Care,
L=Rome, ST=N/A, C=IT" -keypass ASL1_key
在本例中,ASL1_cert 是证书的别名;signer.jks 是创建的密钥存储库,它包含 RSA 密钥对;signer 是密钥存储库的密码;ASL1_Key 是为证书提供的通用密码。在完成上述步骤之后,可以导出别名 ASL1_cert 的公钥,这样即可在以后将其上传到 WebSphere DataPower SOA Appliances。
清单 5. 示例命令
keytool -export -alias ASL1_cert -keystore signer.jks
-storepass signer -file ASL1.cert
在本例中,您使用了八个服务提供者:从 ASL1 到 ASL8。您根据上述步骤为每个服务提供者生成了一个自签名证书并明确修改了要存储在证书中的别名和提供者的信息。然后,将这些证书上传到 WebSphere DataPower SOA Appliances。
将证书上传到 WebSphere DataPower SOA Appliances 设备
要将一些证书上传到 WebSphere DataPower SOA Appliances 设备,请执行下列步骤:
1.登录到 WebSphere DataPower SOA Appliances 设备。在控制面板中,单击 Keys and Certs Management 图标。
2.在打开的窗口中,选择 Certificates,然后单击 Add(请参见图 3)。
图 3. 密钥和证书管理

3.在出现的下一个窗口中,单击 Upload。
4.在您的计算机上浏览到证书所在的位置,然后按 OK(请参见图 4)。
图 4. 加密证书

5.输入 ASL1_cert 作为证书名,在稍后的操作中该名称将用作证书对象的别名。