16

WCF Securityとの残忍な戦いの後、私は今、最終段階にあり、光を見ることができると思います。

サーバーにクライアント証明書をインストールしましたが、アドバイスに従って、証明書ストアのTrustedPeopleフォルダーにあります。

ただし、証明書アプリケーション->サービスを読み取ろうとすると、次のエラーが発生します。

次の検索条件を使用してX.509証明書が見つかりません:StoreName'My'、StoreLocation'CurrentUser'、FindType'FindBySubjectName'、FindValue'ForenameSurname'。

「ForenameSurname」は私の証明書の「Issuedto」の部分です。私が見たすべてのチュートリアルでは、これは一言です。これは問題ですか?CAから、この2つの単語とスペースを入れた証明書を受け取りました。

誰かがこれに出くわしたことがありますが、私が露骨に間違っていることはありますか?

更新、証明書はここで見ることができます:

ここに画像の説明を入力してください

アップデート:

それはさらに奇妙になります:

Visual StudioをWebサーバーにインストールし、次のコードを使用して指紋で証明書を取得しました。

var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "71995159BFF803D25BFB691DEF7AF625D4EE6DFB", false);

これは実際に有効な結果を返します。ただし、この情報をサービス/クライアントのweb.configに入れると、エラーが発生します。

4

2 に答える 2

16

私は..あなたは信頼できる人々の場所に証明書をインストールし、私の店名で検索していると思います

var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, certificateSubject, false);

また、2つの検索語FindBySubjectNameまたはFindBySubjectDistinguishedNameがあります。後者はキーワードとの関連性が高く、最初の検索語は検索キーワードを含むものを検索します。

したがって、基本的に件名を探す必要があり、上記のコードを使用する場合、検索文字列は.. "CN = urs.microsoft.com、O = DO_NOT_TRUST、OU = Created byhttp://fiddler2.com"になります

証明書のプロパティ

于 2012-11-06T10:53:30.130 に答える
1

https://i.stack.imgur.com/QtYvV.png

private X509Certificate2 GetCertificateFromStore()
        {
            var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
            store.Open(OpenFlags.ReadOnly);
            var certCollection = store.Certificates;
            var currentCerts = certCollection.Find(X509FindType.FindBySubjectDistinguishedName, "CN=sf.sandbox.mapshc.com", false);
                return currentCerts.Count == 0 ? null : currentCerts[0];
        }
于 2018-04-21T18:05:41.937 に答える