web-dev-qa-db-ja.com

複数のCAによって署名された証明書

複数のCAによって署名されたOpenSSL証明書を持つことは可能ですか?

背景:主にマシン間通信用に証明書を発行するCAがあります。ここで、一部のサービスをユーザーもアクセスできるようにする必要があり、同じCAを使用したいのですが、もちろんほとんどのベンダーから信頼されていません。信頼を高めるために、これらの証明書を別のCAによって署名してもらうことができれば素晴らしいと思います。

5
Silvia

いいえ、X.509証明書(OpenSSLで使用されるタイプ)に複数の署名を含めることはできません。ただし、同じジョブを実行する複数の証明書を発行できます。

キーとサブジェクトを同じに保つと、CAが発行する証明書の有効な発行者証明書としてそれぞれが満たす複数のCA証明書を作成できます。これらのCA証明書は、それ自体が自己署名されている場合もあれば、クロス署名証明書と呼ばれるものとして別のCAによって発行されている場合もあります。

他の回答者は正しいです。商用CAは、CAに相互署名する前に、ポリシーと手順を徹底的に調査する必要があります。とはいえ、技術的な観点からは間違いなく可能です。

あなたが話しているユーザーがあなたが制御するデバイスのみを使用している場合(つまり、彼らは内部ユーザーです)、それらのデバイスにルートCA証明書をインストールすることをお勧めします。これは多くの大企業が行っていることであり(実際には私自身のネットワークで行っています!)、独自のポリシーに従って、内部使用のみの証明書を好きなだけ発行できます。

一方、ユーザーが組織の外部にいる場合(または、たとえば自宅で仕事をしている従業員でさえ)、信頼できる商用CAから証明書を発行するのがおそらく最善です。これらの証明書を多数(年間5回以上)必要とする場合、ほとんどの商用CAには、管理上の負担を軽減し、多くの場合コストを削減するプログラムがあります。本当に大量が必要な場合(年間100を超えない限り、私は気にしないでください)、CAにアプローチしてカスタムの下位CAをセットアップすることを検討できます(ただし、上記のように、彼らはおそらくあなたを望んでいます既存のポリシーに相互署名するのではなく、ポリシーに従ってnew CAを設定します)。

3
Calrion

信頼を高めるために、これらの証明書を別のCAによって署名してもらうことができれば素晴らしいと思います。

これが可能であったとしても、信頼できない当事者も証明書に署名したため、信頼のレベルは上がりません。つまり、証明書は一般に信頼されるべきではありません。主要なプラットフォームが実際に信頼している新しいCAベンダーからすべてに署名することをお勧めします。

1
Ramhound

信頼を高める唯一の方法は、[〜#〜] ca [〜#〜]を信頼できるCAに署名させることです。そうすれば、CAは中間CAとして機能するため、クライアントは証明書チェーンをたどって事前に信頼されたCAの1つに戻ることができますが、発行された証明書はすべて1つの共通ルートから発信されます。

それは少なくとも理論ですが、私が理解している限り、PKIをCAに渡さない限り、CAはそれを喜んで行いません。 CACert wiki には、問題に関する詳細がいくつかあります。

そのため、どうやら、クライアントに新しい信頼できるCAをインストールさせるか、クライアント向けの証明書を自分のCAではなく、Ramhoundが提案した信頼できる大きなCAによって発行することに悩まされています。

0