使用Glassfish/Metro模拟WCF安全Web服务器的问题

use*_*554 10 java ssl java-metro-framework glassfish-3

我正在尝试构建一个Glassfish托管的Web服务,该服务模仿(用于开发测试)WCF托管的Web服务.我有来自WCF托管服务的WSDL,我可以从WCF托管的WSDL构建Java服务和Java客户端,没有任何问题.WSDL使用相互证书安全性进行数据交换.

WSDL具有与WCF服务器的主机证书匹配的嵌入式X509证书.

当我尝试将我的Java客户端连接到Glassfish托管的Java服务时,我得到 - 当然 - 证书错误.

那么我采取了哪些步骤来实现这一目标?我假设:

A)我需要将WSDL中的X509证书字符串替换为我安装Glassfish时创建的自签名Glassfish证书's1as'的内容.

B)为服务器网络配置设置Glassfish服务器SSL参数,以使用随Glassfish安装提供的默认cacerts.jks和keystore.jks证书库.即使我没有在这里使用SSL,我假设服务器需要知道其信任库和密钥库在HTTP上执行相互证书安全性的位置.

C)将's1as'服务器证书添加到Java客户端的信任库中.

D)将我以前用于原始WCF连接客户端的任何证书添加到Glassfish服务器的密钥库.(我不确定这个?)

这里有什么我想念的吗?任何援助将不胜感激.

Gee*_*nte 1

显然,您使用的是消息层安全性,而不是 SSL。因此,通信层未加密,仅加密消息本身。

这是使用 WSIT 功能在 Glassfish 中完成的。我建议查看 WSIT 教程中的相互证书安全示例:http://docs.oracle.com/cd/E19316-01/820-1072/ahiem/index.html

基本上,WSIT 使用as-install /domains/domain1/config中的密钥库,您需要在 WSIT 描述符中通过别名来指定它们。

你好,吉尔特。