0

IIS の下に、クライアント証明書 (メッセージ WS-Security ではなく、IIS 自体) を使用したトランスポート セキュリティ (SSL) によって保護された WCF サービスがあります。証明書を wso2carbon.jks に追加しました Send mediator が実行されるたびに、リクエストがタイムアウトします。IIS ログには、エラー 500.0 のみが表示されます。IIS 構成でクライアント証明書を無視するように設定した場合、すべて正常に動作します。また、コード化された Java Axis2 および .Net クライアントは、ISS でオンになっている証明書で正常に動作します。

ほとんどの場合、私は電話で何かを逃しました。そのような場合に WS-policy は必要ですか? 助けていただければ幸いです。

4

2 に答える 2

2

最後に回避策を見つけました。

解決策 IISでSSLAlwaysNegoClientCertを有効にします。ここに良い投稿があります:IISに最初のハンドシェイク中にSSLクライアント証明書を要求させる

理由:クライアントが保護されたリソースにアクセスする場合、IISはデフォルトでSSLを再ネゴシエートします。NIOおよびHttpPathThroughトランスポートでは、再ネゴシエーションは許可されていません(セキュリティの脆弱性であるため、これは理にかなっています)。そのため、IISはClient Helloを取得せず、エラー500を発行します(WSO2の担当者にとって、TryItクライアントがタイムアウトになるまでハングするのはなぜですか?)

備考:IIS側で常に変更を加えることができるとは限らないため、WSO2 ESBで利用可能なトランスポートが、再ネゴシエーションを許可するという点でより柔軟であると、はるかに優れています(おそらく、どこで構成するかを見逃しました...)

于 2013-03-15T05:16:00.023 に答える
0

このシナリオでは、WSO2ESBがクライアントとして機能しています。したがって、証明書をWSO2ESBのrepository/ resources/securityフォルダーにあるclient-truststore.jksにインポートする必要があります。その後、サービスの呼び出しが機能するはずです。

于 2013-03-14T06:14:02.790 に答える