若要配置SOAtest 以使用Web服务,其使用 HTTPS(通过 SSL 的 HTTP)部署,则需要从服务器识别和注册用于 HTTPS 连接的证书:
关闭SOAtest 如果它目前是开启状态。
- 标识用于 HTTPS 连接的服务器证书位置。
- 确保该证书的 COMMON NAME 参数包含服务器的机器名称和子域名(例如,
machine.company.com
)。 复制证书到以下位置:
<soatest_install_dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<soatest_version_number>/root/lib
该目录应该包含存储受信任证书的cacerts
文件。执行以下格式命令:
keytool -import -alias <certificate_alias> -file <certificate_file> -keystore cacerts
例如,如果证书文件命名为test.cert
,则执行以下命令,该命令来自<soatest_install_dir>/plugins/com.parasoft.xtest.libs.web_<soatest_version_number>/root/lib
prompt:keytool -import -alias serverTrustCert -file test.cert -keystore cacerts
这将把证书导入别名为 “serverTrustCert
”的 cacerts 文件中。- 提示输入密匙库密码时,请输入
changeit
。 - 询问是否信任该证书时,请输入
yes
。然后将看到一条消息,指明该证书已添加到密匙库中。 - (可选项)验证证书是否通过输入以下命令,然后检查打开的文件,从而添加到密匙库中:
keytool -list -keystore cacerts
启动SOAtest
并尝试再次访问服务。
如果在使用 HTTPS 部署的服务时遇到问题,请验证以下内容:
- 服务器正在运行。
- 尝试与此 HTTPS 进行通信时,使用的是机器的全名。
- 服务器证书使用全名进行创建。
- 证书上的名称与客户端试图使用其访问的名称相同。
如果没有满足以上要求(例如,如果没有必要的权限):
- 选择 Parasoft> Preferences 以打开首选项对话框。
- 从首选项对话框左窗格中选择 Parasoft> Seacurity ,然后在右窗格中选择 Trust all certificates 选项。
- 单击 OK 或 Apply 以应用此更改。
SOAtest 将尝试访问指定的任务 WSDL,而不管证书存在什么问题。然而,SOAtest仍将在尝试发送 SOAP 消息的时候使用证书,因为这是必需的。
注意
必须将证书添加到负载测试奴隶机和主机上的 cacerts 文件。否则,在使用奴隶机运行负载测试时,SSL 连接将无法工作。
如果这些过程都不能处理您的问题,请以 联系 Parasoft 技术支持中所描述的其中一种方式联系 Parasoft。
调试 SSL 问题
SOAtest 运行 在标准 JVM 上。若要呈现 SSL/TLS 握手的详细信息并帮助识别 SSL 连接问题的原因,请启用 JVM 网络和 SSL 调试:
- 打开命令行控制台并导航到 SOAtest 安装目录。
- 用参数启动可执行文件:
-J-Dssl.debug=true -J-Djavax.net.debug=all -consolelog
SOAtest将按往常一样启动,但是每当建立 SSL 连接时,调试输出都将打印到控制台。如果希望将堆栈输出保存到文件(例如, output.txt
),则可以在命令行尾部添加以下内容:
> output.txt
关于使用 Java keytool 管理键和证书的更多信息,请查看 Oracle Java 文档。请参考:
- Windows:http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html
- Linux, Mac: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
JMS SSL
请查阅 JMS。