5

次の場所に証明書をインストールしました。

  • 証明書 (ローカル コンピューター)
    • 信頼されたルート証明機関
      • 証明書

そして、このコードは証明書を有効なものとして取得しました。

X509Store certStore = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);

try {
    var oAuthRootCertificateList = certStore.Certificates.Find(findType, findValue, true);
    oauthRootCertificate = oAuthRootCertificateList[0];
} catch (Exception ex) {
    Trace.TraceError(ex.Message);
} finally {
    certStore.Close();
}

* (findType と findValue はコード内で事前に設定されています)

すべては問題なく、コードは問題ありませんでした。

「信頼されたルート証明機関」から証明書を削除し、次の場所にインストールしました。

  • 証明書 (ローカル コンピューター)
    • 中間認証機関
      • 証明書

Azure では、信頼されたルート ブランチに証明書を展開することが許可されていないためです。

そして今、コードは失敗しています。実行するには、最後のパラメーター (validOnly) を から に変更する必要がありtrueますfalse

Findメソッドのヘルプはこちらでご覧いただけます

なぜそれが実行されていないのか、どうすれば解決できるのでしょうか?

4

1 に答える 1

3

中間ストアの証明書は、証明書チェーンの検証目的で使用されます。証明書が自己署名証明書である場合、証明書の検証を成功させるには、その発行者が信頼されたルート機関に存在する必要があります。

中間認証局に配置するだけでは不十分です。

于 2013-03-21T14:28:01.970 に答える