2012-05-03 30 views
3

私はXMLデータを生成し、生成されたXMLに署名するライブラリを開発しています。 Windows証明書ストアにpkcs12証明書(pemファイルからOpenSSLで生成)をインストールしました。私prename +姓:Windows証明書ストアで証明書を明確に認識

私は、CN識別子がある私の場合は

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
store.Open(OpenFlags.ReadOnly); 
X509Certificate2 cert = null; 

foreach (var item in store.Certificates) 
{ 
    if (item.SubjectName.Name.Contains("CN=IDENTIFIER")) 
    { 
     cert = item; 
     break; 
    } 
} 
store.Close(); 

とC#のコードから証明書をロードしています。証明書は第三者から提供されます。だから私は識別子に影響を与えないと思う。

正確にC#のからこの証明書を識別するために、どのような方法があります:

そして、ここでは質問をしています。将来、複数の証明書が同じX509パラメータ(CNなど)を持つ可能性があります。

ありがとうございます。

答えて

3

はい、CNに同じ識別子が含まれている可能性があります(たとえば、証明書がビジネスエンティティに発行されたときなど)。

証明書は通常、次の組み合わせのいずれかで区別されています 1)発行者名(ないCNが、RDN、複数のフィールドを持つ完全な名前レコード)+証明書のシリアル番号(それは1 CA内で一意です) 2)発行者名+証明書のハッシュ

証明書を検索する前に発行者の名前がわからない場合は、見つかった証明書のリストをユーザーに提示し、証明書の1つを選択すると、後で参照できるように証明書ハッシュを格納します。

小型システム(エンドユーザーのコンピュータ)では、通常、マイストア内の証明書の数は少なく、ハッシュの衝突の可能性は最小限です。大規模なシステムでは、チャンスが高くなり、そのため発行者の名前も使用されます。ユージンの答えに拡大

+0

ありがとうございます、IssuerName +証明書シリアル番号は、私が探していたものです。 IETFは言う:シリアル番号は各証明書にCAによって割り当てられた正の整数でなければなりません。それは、所与のCAによって発行された各証明書に対して一意でなければならない(すなわち、発行者名およびシリアル番号が固有の証明書を識別する)。 CAはserialNumberに負でない整数を強制しなければならない(MUST)。しかしRDNではどういう意味ですか? – csteinmueller

+0

RDNはタイプX500DistinguishedNameのIssuernameだと思います。 – csteinmueller

+0

@csteinmueller RDNはRelativeDistinguishedNameの略です。これは、複数のフィールドを持つ型構造体です。注:シリアル番号は整数ですが、この整数の長さは定義されておらず、20バイトのシリアル番号は珍しくありません。 –

3

...

Certificates property of X509StoreX509CertificateCollectionです。

あなたはおそらくそのFind method and the X509FindTypeに興味があります。証明書を検索する方法はいくつかあります。厳密に言うと、the subject DN and the subject alternative namesは、証明書に関連付けられたエンティティを識別するために重要です。しかし、プレゼンテーションの観点からは、これを行うツールはほとんどありません(これは、例えば、表の中でかなり混乱することがあります)。

GregSとEugeneが指摘しているように、certificate thumbprint (also known as fingerprint/hash in other tools)は、特定の証明書を、その発行者とは無関係に一意に識別します。それはcan be used with X509FindTypeです。

拇印は、Windows/.Net/SSLの世界の複数の場所で使用されます。特に、it's the way to pick a given certificate to install on an HTTPS port

関連する問題