1

我想使用带有 mechansim 的 Netbeans 来保护 Web 服务:“基于 SSL 的消息身份验证”,并且我按照 Netbeans 文档和 Sun WSIT 教程的要求做了所有事情。我还在客户端 jre 中导入生成的 SSL 密钥,但是当我运行客户端代码时,我仍然收到此错误:

访问 WSDL 失败:https://localhost:8443/SecureWebService?wsdl。它失败了:sun.security.validator.ValidatorExcepti on:PKIX 路径构建失败:un.security.provider.certpath。SunCertPathBuilderException:无法找到请求目标的有效认证路径。

有人能帮助我吗 ?

4

2 回答 2

1

看起来好像客户端无法验证整个证书路径。客户端证书是自签名的吗?可能是您的证书颁发机构未知。如果这是问题所在,您可以使用以下脚本导入 CA 的公钥:

#!/bin/bash

# path to your cacerts file
CACERTS="/etc/java-6-sun/security/cacerts"
# sun's default password - change if necessary
CACERTSPASS="changeit" 

# change this
ALIAS="myAlias"
CERTPATH="/path/to/ca.der" 

if [ `keytool -list -keystore $CACERTS -storepass $CACERTSPASS | grep -c $ALIAS` -gt 0 ]; then 
    echo already installed
else 
    keytool -import -keystore $CACERTS -storepass $CACERTSPASS -alias $ALIAS -file $CERTPATH
fi

您也可以在 Windows 机器上使用 keytool 命令。

于 2009-10-21T08:44:23.200 回答
0

您可以尝试将 sfussenegger 脚本中的 keytool 命令替换为:

keytool -import -keystore $CACERTS -storepass $CACERTSPASS -alias $ALIAS -file $CERTPATH -trustcacerts

然后脚本会将您的自签名证书作为受信任的 CA 证书导入根密钥库,这将提供有效的证书路径来验证服务器的身份。

于 2009-10-22T13:21:51.437 回答