「Transport with Message Credentials」セキュリティ設定を使用して WSHTTPBinding で構成された IIS6 で実行されている WCF サービスがあります (トランスポート クライアントの資格情報が「なし」に設定され、メッセージが「証明書」に設定されています。これは、 VS 2010 でサービスを使用して自動生成されたコードを使用して作成された .NET クライアント。
私の開発環境では、サービス証明書と IIS SSL 証明書の両方として機能する証明書を作成しました。怠け者だったので、クライアント アプリケーションで使用するために証明書をエクスポートしました。その構成ではすべてがうまく機能しますが、それはターゲット環境ではありません。アイデアは、ユーザーがスマート カードを使用してこのサービスにアクセスできるようにすることです。サーバーは同じドメイン上になく、LDAP は今のところ許可されていません。
問題は、テスト ラボでこれを取得し、SSL 証明書がユーザーの証明書と同じ CA によって発行された環境をセットアップし、カスタムの x509 証明書バリデーターとサービス資格情報を作成しましたが、最初の呼び出しの後に私のバリデーターに、ハンドオフの間に何かが発生し、サービストレースログに「メッセージセキュリティの検証エラー」というエラーが発生し、「署名を検証できません」という内部例外が発生します。これはカスタム バリデータを介して送信され、ログに記録されたメッセージを取得したので、SOAP 側ではすべて問題ないように見え、反対側で証明書を取得しています。使用しようとしているすべての証明書が「信頼されたユーザー」ストアにあることを確認し、証明書をエクスポートしてローカルコンピューターの「個人用」に配置しようとしました
web.config ファイルでのサービス証明書とクライアント証明書の使用法がよくわからない気がします。誰かがここで私を助けてくれますか?