1

mechansim を使用して Netbeans を使用して Web サービスを保護したい:「SSL を介したメッセージ認証」と、Netbeans のドキュメントと Sun WSIT チュートリアルで指示されたすべてのことを行います。生成された SSL キーもクライアント jre にインポートしますが、クライアント コードを実行すると、まだ次のエラーが発生します。

次の WSDL にアクセスできませんでした: https://localhost:8443/SecureWebService?wsdl。失敗しました: sun.security.validator.ValidatorException: 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 証明書としてルート キーストアにインポートします。これにより、サーバーの ID を検証するための有効な証明書パスが提供されます。

于 2009-10-22T13:21:51.437 に答える