2009-03-15 4 views
0

Je fais un certificat auto-signé dans mon environnement de test. Voici plus de détails sur ce que je fais.numéro de certificat auto-signé

http://www.hanselman.com/blog/SigningPowerShellScripts.aspx

Mes brèves étapes sont (le but est d'établir une connexion de confiance entre l'ordinateur C et l'ordinateur A base sur le certificat),

  1. Faire l'ordinateur A une autorité de certification racine en utilisant makecert.exe; Signez un certificat B émis par l'ordinateur A en tant que CA racine;
  2. Installer le certificat B sur l'ordinateur A comme certificat utilisé pour la communication;
  3. Installer/faire confiance à l'autorité CA racine (compter A) dans l'ordinateur C;
  4. Ensuite, l'ordinateur C sera certificat de confiance en utilisant la communication de l'ordinateur A B.

Ma confusion est, fiducies ordinateur C ordinateur A sans installer le certificat B? Je pense que le certificat d'autorité de certification racine et le certificat de l'autre partie doivent être installés. Des commentaires ou des idées?

merci à l'avance, George

Répondre

1

Computer C doit faire confiance à l'autorité de certification racine (sur l'ordinateur A). Ensuite, tous les certificats présentés à partir d'un autre ordinateur (par exemple, l'ordinateur D) émis par la même autorité de certification racine seront automatiquement approuvés. Par exemple, dans Windows, vous (par défaut) avez déjà et faites confiance au certificat d'autorité de certification racine pour Verisign. Lorsque vous accédez à un site HTTPS qui utilise un certificat Verisign, vous le faites automatiquement confiance, puisque vous faites confiance à Verisign et que Verisign a émis le certificat sur le site HTTPS. IOW - vous avez seulement besoin de faire confiance à l'AC et d'installer son certificat.

+0

Merci Mark, installez le certificat CA racine est très bien, pas besoin d'installer le certificat d'éditeur ou d'une personne, qui est délivré par l'autorité de certification racine ? – George2

+0

Correct. En installant le certificat de l'autorité de certification racine sur une machine, vous demandez à cette machine de faire confiance à * tout élément émis par cette autorité de certification. –

2

L'étape 2 est incorrecte, sémantiquement au moins. Si vous générez un certificat signé par une autorité de certification, celle-ci n'est pas auto-signée du tout, elle est signée par l'autorité de certification.

Ainsi, sur l'ordinateur C, vous devez uniquement mettre votre certificat d'autorité de certification généré dans le magasin de l'autorité de certification approuvée. En faisant cela, vous dites que vous faites confiance à tout ce qu'il a signé, dans votre certificat de cas B.

Cependant, vous dites que vous utilisez cela pour la communication - sachez que si vous utilisez quelque chose comme WCF qui va vérifier la révocation, vous serez Vous devez désactiver cette option car l'autorité de certification générée ne prend pas en charge cette fonctionnalité.

+0

Merci blowdart, "Vous avez au moins l'étape 2 incorrecte, sémantiquement au moins.Si vous générez un certificat signé par une autorité de certification alors il n'est pas auto-signé du tout, il est signé par l'autorité de certification." - C'est mon mauvais, je veux dire signé par l'autorité de certification auto-établie. :-) – George2

+0

Merci blowdart, dans votre solution, je veux confirmer si vous voulez dire que j'ai juste besoin d'installer le certificat de B dans l'éditeur de confiance de la machine C? Si oui, je ne suis pas d'accord puisque le certificat B est émis par l'ordinateur CA racine A, qui n'est pas approuvé par l'ordinateur B par défaut. – George2

+0

(suite) Je pense donc que je dois installer toute la chaîne de confiance - installer le certificat de l'autorité de certification racine (dans mon exemple, le certificat CA racine de la machine A) dans les autorités de certification racines de la machine. Des commentaires? – George2

1

L'ordinateur A ne devient pas réellement un "CA racine". Vous devez créer un certificat racine, puis l'installer sur l'ordinateur cible. Il n'est pas aussi simple que d'installer le certificat racine sur l'ordinateur cible, car différentes applications peuvent utiliser des magasins de certificats différents. Par exemple, vous devez installer des certificats racines dans Firefox et Explorer.

Vous pouvez ensuite créer des certificats «enfants» - signés par le certificat racine - et le système cible acceptera le certificat enfant comme valide, car il a été signé par le certificat racine approuvé.

Un certificat est simplement un moyen de valider la clé publique de quelqu'un.Le certificat contient à la fois votre clé publique en texte brut et votre clé publique cryptée par la clé privée du signataire. Pour valider la clé publique publiée dans le certificat, déchiffrez la version chiffrée de la clé publique en utilisant la clé publique du signataire et vérifiez qu'elle est la même que la version en texte brut de la clé publique.

Dans un certificat auto-signé, vous cryptez votre clé publique avec votre clé privée. Ainsi, un certificat autosigné est également un certificat racine car il n'y a pas d'autorité de signature supérieure dans la chaîne.

Les certificats intermédiaires peuvent également être utilisés pour signer d'autres certificats. De cette manière, les certificats peuvent être utilisés pour construire une «chaîne de confiance» en retour vers un certificat racine de confiance (au moins théoriquement).

Bruce Schneier a une description raisonnable de ceci dans son livre "Applied Cryptography". Et Peter Gutman a une description plus colorée des certificats à ce linky:

http://www.cs.auckland.ac.nz/~pgut001/pubs/pkitutorial.pdf

+0

Merci billmcc, je suis intéressé par le problème du magasin de certificats que vous avez mentionné. Pour autant que je sache, Windows gère le certificat par les 2 meilleures catégories - currentuser ou localmachine, et sous les 2 catégories, il y a des sous-magasins. Est-ce exact? Si oui, des outils pour voir tous les magasins locaux nommés? – George2

+0

", puis installez-le sur l'ordinateur cible." - Ordinateur cible que vous voulez dire dans mon échantillon, ordinateur A ou ordinateur C? – George2

+0

Dans votre exemple, l'ordinateur cible est l'ordinateur C. – billmcc