ローカルワークステーションでWCFサービスをテストしていますが、X509証明書では問題があります。クライアントはX.509証明書を見つけることができません
私は証明書を作成し、それを正常に登録しました。証明書マネージャの[信頼された人物/証明書]に証明書が表示されます。
<serviceCertificate findValue="*****" storeLocation="LocalMachine"
storeName="TrustedPeople" x509FindType="FindBySubjectName" />
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="*****.DistributorValidator, *****" />
<issuedTokenAuthentication certificateValidationMode="None" />
しかし、サービスをブラウザで開いたときに、私は「System.InvalidOperationExceptionがエラーを取得する:使用してX.509証明書を見つけることができません、次のようにサービスの動作が設定されている(名前は*としてコメント)以下の検索条件:。StoreNameを 'TrustedPeople'、StoreLocation 'LOCALMACHINE'、FindType 'FindBySubjectName'、FindValue "* ***"
私はプログラム的に証明書を設定しようとすると、同じエラーが発生しましたテストクライアント:
serviceclient.ClientCredentials.ClientCertificate.SetCertificate(
StoreLocation.LocalMachine,
StoreName.TrustedPeople,
X509FindType.FindBySubjectName,
"CN=TravelBrokerKey");
件名、拇印またはシリアル番号で検索しても違いはありません。私は例外とデバッグをキャッチしようとしましたが、デバッガをアタッチできませんでした(クライアント側で例外が発生するようです)。また、ブラウザの設定で証明書を直接登録しようとしましたが、これも役に立たなかった。
テスト環境OSはWindows 7で、ブラウザIE8とFirefox 4.0でテストされています。
[OK]を、サービス構成からコメントアウト、shouldn:リンクはあなたを助けるかもしれ後
少なくともブラウザでサービスを表示したり、サービス参照としてテストクライアントに追加することは可能でしょうか?まだ毎回「x.509 ..を見つけることができません」という例外が出ます。 –
あなたのサービスは正しく開始されたようですが、もしそうなら、サービスが証明書を見つけることができると思います。クライアントの証明書を手動で見つけることができるかどうか確認できますか? – Jack
これで動作しました。私はサービス用の証明書を使用していますが、クライアント用ではありません(カスタムユーザー名/パスワードチェックがあり、httpsを使用していないため証明書が必要です)。ヒントありがとうございます。 –