質問

リードイン...私はSSLを介したアプリケーションセキュリティの専門家ではありませんが、生産で遭遇する可能性のあるすべてのシナリオを含むテスト環境を確立しようとしています。このためには、テストクライアント証明書の品揃えの発行者である証明書当局(CAS)とノード/サーバー証明書(さまざまな公開されたWebサービスや統合するその他のアプリケーションを表す複雑なテスト環境)を持っています。

これらのCASの構造は次のとおりです。SubCa1、Sub Ca2、およびSub Ca3に署名/発行されたルートCa。これらの潜水艦は、環境内のさまざまなノードとクライアントのすべての証明書に署名/発行されました。

今、質問のために....私のアプリケーションのトラストストアでは、サブCA1とサブCA2が署名したすべてを信頼したいが、サブCA3(信頼できない)ではありません。これは、私のトラストストアが(1)サブCA1とサブCA2のみを含める必要があることを意味しますか、それとも(2)ルートCA、サブCA1、およびサブCA2を含める必要がありますか?

トラストストアでこのトラストチェーンを代表する適切な方法が何であるかわかりません。将来的には、サブCA4(ルートCAによって署名/発行された/発行)を追加したいと思いますが、テスト目的でそれを証明書取消リスト(CRL)に追加します。

事前に、これに関する助けに感謝します。大歓迎です。

役に立ちましたか?

解決

警告:私はこれをテストするつもりはないので、私の答えが正しいことを願っています。

あなたの基本的な仮定は正しいと思います。カスタムコードを作成せずに選択的に信頼を取り消すことができるとは思わないので、TrustStoreには完全に信頼できる証明書のみを含める必要があります。したがって、ルートCAを残してオプションを選択してください(1)。

ご覧のとおり、このような細かい穀物アクセス制御を実施しようとすると、Java(および他のすべてのシステム)X509証明書ベースの認証モデルには不適切です。これらは基本的に、SSL証明書とコード署名証明書のために、Verisign、Thawte、GoDaddy、GlobalSignなどにID検証を外部委託するように設計されています。自己署名証明書を含む他のモデルをサポートできますが、かなりの前向きな痛みや継続的なメンテナンスの頭痛がないわけではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top