Différence entre CA auto-signé et certificate auto-signé

Je ne suis pas clair sur la différence entre une clé CA et un certificate. Une clé de CA n’est-elle pas simplement un certificate? Laissez-moi essayer de clarifier avec un exemple.

J’ai un client et un serveur. J’essaie seulement de valider ma connexion à mon serveur et de ne pas essayer d’établir la confiance avec les autres, donc je ne me soucie pas de signer avec une véritable autorité de certificateion.

Option 1: générez une autorité de certificateion auto-signée ( ssCA ) et utilisez-la pour signer un certificate ( C ). J’installe ensuite ssCA dans le magasin de clés racine de mon client et configure mon serveur pour utiliser le certificate C.

Option 2: générer un certificate auto-signé ( SSC ). Installez SSC dans le fichier de clés racine de mon client. Configurez mon serveur pour utiliser le certificate SSC .

La seconde option semble être un processus beaucoup plus simple. Est-ce que ça doit encore marcher?

Les deux options sont valides, l’option 2 est plus simple.

L’option 1 (configuration de votre propre autorité de certificateion) est préférable lorsque vous avez besoin de plusieurs certificates. Dans une entreprise, vous pouvez configurer votre propre autorité de certificateion et installer le certificate de cette autorité de certificateion dans le magasin de clés racine de tous les clients. Ces clients accepteront alors tous les certificates signés par votre autorité de certificateion.

L’option 2 (signature automatique d’un certificate sans CA) est plus facile. Si vous avez juste besoin d’un seul certificate, cela suffit. Installez-le dans les fichiers de clés de vos clients et vous avez terminé. Mais lorsque vous avez besoin d’un second certificate, vous devez le réinstaller sur tous les clients.

Voici un lien avec des informations supplémentaires: Création d’autorités de certificateion et de certificates SSL auto-signés

Tout d’abord, à propos de la distinction entre clé et certificate (en ce qui concerne la “clé de CA”), trois pièces sont utilisées pour parler des certificates de clé publique (généralement X.509): la clé publique, la clé privée et le certificate. La clé publique et la clé privée forment une paire. Vous pouvez signer et déchiffrer avec la clé privée, vous pouvez vérifier (une signature) et chiffrer avec la clé publique. La clé publique est destinée à être dissortingbuée, alors que la clé privée est destinée à restr privée.

Un certificate de clé publique est la combinaison entre une clé publique et divers éléments d’information (concernant principalement l’identité du propriétaire de la paire de clés, qui contrôle la clé privée), cette combinaison étant signée à l’aide de la clé privée de l’émetteur de la clé. certificate. Un certificate X.509 a un nom distinctif et un nom distinctif d’émetteur. Le nom de l’émetteur est le nom d’object du certificate de l’entité émetsortingce du certificate. Les certificates auto-signés constituent un cas particulier où l’émetteur et le sujet sont les mêmes. En signant le contenu d’un certificate (c’est-à-dire l’émission du certificate), l’émetteur affirme son contenu, en particulier la liaison entre la clé, l’identité (le sujet) et les différents atsortingbuts certificate).

De plus, la spécification PKIX définit une extension (partie d’un certificate donné) qui indique si un certificate peut être utilisé en tant que certificate d’autorité de certificateion, c’est-à-dire s’il peut être utilisé comme émetteur pour un autre certificate.

À partir de cela, vous créez une chaîne de certificates entre le certificate d’entité finale (qui est celui que vous souhaitez vérifier, pour un utilisateur ou un serveur) et un certificate d’autorité de certificateion en lequel vous avez confiance. Il peut exister des certificates d’autorité de certificateion intermédiaires (émis par d’autres certificates d’autorité de certificateion) entre le certificate d’entité finale de votre service et le certificate d’autorité de certificateion en lequel vous avez confiance. Vous n’avez pas nécessairement besoin d’une autorité de certificateion racine (un certificate d’autorité de certificateion auto-signé), mais c’est souvent le cas (vous pouvez choisir d’approuver directement un certificate d’autorité de certificateion intermédiaire si vous le souhaitez).

Pour votre cas d’utilisation, si vous générez un certificate auto-signé pour un service spécifique, le fait qu’il ait l’indicateur CA (extension des contraintes de base) n’a pas vraiment d’importance. Il vous faudrait un certificate de CA pour pouvoir émettre d’autres certificates (si vous souhaitez créer votre propre infrastructure à clé publique). Si le certificate que vous générez pour ce service est un certificate d’autorité de certificateion, il ne devrait pas faire de mal. Ce qui importe le plus, c’est la façon dont vous pouvez configurer votre client pour faire confiance à ce certificate pour ce serveur particulier (les navigateurs devraient vous permettre de faire une exception explicite très facilement, par exemple). Si le mécanisme de configuration suit un modèle PKI (sans recours à des exceptions spécifiques), car il ne sera pas nécessaire de créer une chaîne (avec un seul certificate), vous devriez pouvoir importer le certificate directement dans les ancres de confiance de votre client, qu’il s’agisse d’un certificate CA ou non (mais cela peut dépendre du mécanisme de configuration du client).

Vous pouvez openssl x509 -noout -text -in $YOUR_CERT pour voir les différences entre les contenus des fichiers:

Dans votre CA auto-signé, vous pouvez voir:

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

Et dans votre certificate auto-signé, c’est:

  X509v3 extensions: X509v3 Basic Constraints: CA:FALSE 

Vous devez toujours disposer d’une autorité de certificateion racine. L’autorité de certificateion dispose d’une clé qui peut être utilisée pour signer un certificate de niveau inférieur et un certificate racine pouvant être incorporé dans les certificates racine acceptés sur le client et utilisé pour vérifier les certificates inférieurs. sont valides. Auto-signé signifie simplement que vous êtes votre propre CA. Lorsque vous créez un certificate auto-signé, vous créez un fichier ca, puis signez un certificate de site avec cette autorité de certificateion.