web-dev-qa-db-ja.com

自己署名CAと自己署名証明書の違い

CAキーと証明書の違いについては明確ではありません。 CAキーは単なる証明書ではありませんか?例を挙げて説明します。

クライアントとサーバーがあります。私は自分のサーバーへの接続を検証しようとしているだけで、他のユーザーへの信頼を確立しようとはしていないので、実際のCAとの署名は気にしません。

オプション1:自己署名CAを生成し(ssCA)、それを使用して証明書に署名します([〜#〜] c [〜#〜])。次に、クライアントのルートキーストアにssCAをインストールし、証明書を使用するようにサーバーをセットアップします[〜#〜] c [〜#〜]

オプション2:自己署名証明書を生成します([〜#〜] ssc [〜#〜])。クライアントのルートキーストアに[〜#〜] ssc [〜#〜]をインストールします。証明書を使用するようにサーバーをセットアップします[〜#〜] ssc [〜#〜]

2番目のオプションは、はるかに単純なプロセスのようです。それでも動作するはずですか?

66
Pace

どちらのオプションも有効ですが、オプション2の方が簡単です。

オプション1(独自のCAのセットアップ)は、複数の証明書が必要な場合に適しています。会社では、独自のCAをセットアップし、そのCAの証明書をすべてのクライアントのルートキーストアにインストールする場合があります。これらのクライアントは、CAによって署名されたすべての証明書を受け入れます。

オプション2(CAなしで証明書に自己署名する)の方が簡単です。単一の証明書が必要な場合は、これで十分です。クライアントのキーストアにインストールすれば完了です。ただし、2番目の証明書が必要な場合は、すべてのクライアントに再度インストールする必要があります。

詳細情報のリンクは次のとおりです。 認証局と自己署名SSL証明書の作成

52
Helge Klein

まず、キーと証明書(「CAキー」に関する)の違いについて、公開鍵証明書(通常はX.509)について話すときは、公開鍵、秘密鍵、証明書の3つの要素が使用されます。公開鍵と秘密鍵はペアを形成します。秘密鍵で署名および復号化でき、公開鍵で検証(署名)および暗号化できます。公開鍵は配布することを目的としていますが、秘密鍵は秘密にしておくことを目的としています。

公開鍵証明書は、公開鍵とさまざまな情報(主に秘密鍵を管理する人の鍵ペアの所有者に関する)に関する情報の組み合わせであり、この組み合わせは、発行者の発行者の秘密鍵を使用して署名されます証明書。 X.509証明書には、サブジェクト識別名と発行者識別名があります。発行者名は、証明書を発行するエンティティの証明書のサブジェクト名です。自己署名証明書は、発行者とサブジェクトが同じ特別な場合です。証明書のコンテンツに署名する(つまり、証明書を発行する)ことにより、発行者はそのコンテンツ、特に、キー、アイデンティティ(サブジェクト)、およびさまざまな属性(使用目的または使用範囲を示す可能性がある)証明書)。

さらに、PKIX仕様では、証明書をCA証明書として使用できるかどうか、つまり別の証明書の発行者として使用できるかどうかを示す拡張子(特定の証明書の一部)を定義しています。

これから、エンドエンティティ証明書(ユーザーまたはサーバーの検証する証明書)と信頼するCA証明書の間に証明書のチェーンを構築します。サービスのエンドエンティティ証明書と信頼するCA証明書の間に中間CA証明書(他のCA証明書によって発行される)がある場合があります。最上位のルートCA(自己署名CA証明書)は厳密には必要ありませんが、よくあるケースです(必要に応じて、中間CA証明書を直接信頼することもできます)。

ユースケースでは、特定のサービス用に自己署名証明書を生成する場合、CAフラグ(基本制約拡張)があるかどうかは実際には関係ありません。他の証明書を発行できるようにするには、CA証明書である必要があります(独自のPKIを構築する場合)。このサービス用に生成する証明書がCA証明書である場合、害を及ぼすことはありません。さらに重要なのは、この特定のサーバーの証明書を信頼するようにクライアントを構成する方法です(たとえば、ブラウザーでは、簡単に明示的な例外を作成できるようにする必要があります)。構成メカニズムが(特定の例外を使用せずに)PKIモデルに従う場合、チェーン(1つの証明書のみ)を構築する必要がないため、証明書を信頼アンカーの一部として直接インポートできるはずです。 CA証明書であるかどうかにかかわらず、クライアント(ただし、これはクライアントの構成メカニズムに依存する場合があります)。

58
Bruno

あなたはできる openssl x509 -noout -text -in $YOUR_CERTファイルの内容の違いを確認するには:

自己署名CAでは、次を確認できます。

    X509v3 extensions:                                                          
        X509v3 Basic Constraints:
            CA:TRUE, pathlen:0

そして、自己署名証明書では、次のとおりです。

    X509v3 extensions:                                                          
        X509v3 Basic Constraints:
            CA:FALSE
5
toksea

常にルートCAが必要です。CAには、下位レベルの証明書の署名に使用できるキーと、クライアントで受け入れられたルート証明書に埋め込むことができるルート証明書があります。有効です。自己署名は、あなたがあなた自身のCAであることを意味します。自己署名証明書を作成するたびにCAを作成し、そのCAでサイト証明書に署名します。

1
ewanm89