私は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など)を持つ可能性があります。
ありがとうございます。
ありがとうございます、IssuerName +証明書シリアル番号は、私が探していたものです。 IETFは言う:シリアル番号は各証明書にCAによって割り当てられた正の整数でなければなりません。それは、所与のCAによって発行された各証明書に対して一意でなければならない(すなわち、発行者名およびシリアル番号が固有の証明書を識別する)。 CAはserialNumberに負でない整数を強制しなければならない(MUST)。しかしRDNではどういう意味ですか? – csteinmueller
RDNはタイプX500DistinguishedNameのIssuernameだと思います。 – csteinmueller
@csteinmueller RDNはRelativeDistinguishedNameの略です。これは、複数のフィールドを持つ型構造体です。注:シリアル番号は整数ですが、この整数の長さは定義されておらず、20バイトのシリアル番号は珍しくありません。 –