2

次の認証パスを持つサブ CA から発行された証明書があります。

Root CA
   Sub CA
      My Certificate

X509Chain.Build() で検証しようとすると、常に信頼されたルート証明機関フォルダーにサブ CA がないと true が返されないのはなぜですか? ルート CA 証明書は既にそこにあるので、信頼の網であるルートを信頼しているので、サブ CA も信頼すべきではありませんか? 現時点では、サブ CA 証明書を信頼されたルート認証局に追加しない限り、信頼されたルート認証局へのチェーンを構築できないと表示されているためです。

4

1 に答える 1

3

Erik のコメントを詳しく説明すると、ルート CA 証明書を信頼するということは、ルート CA が直接署名するものを信頼するということです。

中間に中間サブ CA がある場合、その証明書はルート CA によって署名され、サブ CA は証明書に直接署名します。

Root CA ---signs/verifies---> Sub CA ---signs/verifies---> End user certificate

エリックが言ったように、サブ CA 証明書が存在しない場合、ルート CA をエンド ユーザー証明書にリンクする方法はありません。ルートはサブ CA 証明書を検証でき、サブ CA はエンド ユーザー証明書を検証できますが、ルートがエンド ユーザー証明書に署名していないため、ルートがサブ CA をスキップしてエンド ユーザー証明書を検証する方法はありません。 .

これを解決するには、次の 2 つの方法があります。

  • 信頼できる証明書にサブ CA 証明書を含めるか、または
  • サブ CA 証明書がエンド ユーザー証明書に含まれていることを確認して、チェーンを確立できるようにします。
于 2013-08-06T20:38:42.937 に答える