2009-03-15 14 views
0

Ich mache Selbstsignaturzertifikat in meiner Testumgebung. Hier ist mehr Details darüber, was ich mache.selbstsigniertes Zertifikat Problem

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

My kurze Schritte sind (der Zweck ist, das Vertrauen Verbindung zwischen dem Computer C und Computer-A-Zertifikat basierend auf herzustellen),

  1. Computer A Herstellen einer Stammzertifizierungsstelle durch Makecert.exe verwendet;
  2. Self signieren Sie ein Zertifikat B, das von Computer A als Stammzertifizierungsstelle ausgestellt wird;
  3. Installieren Sie Zertifikat B auf Computer A als Zertifikat für die Kommunikation.
  4. Installieren/vertrauen Sie Stamm-CA (Computer A) in Computer C; Verwendung Zertifikat B.

Meine Verwirrung ist, Computer-C vertraut Computer A ohne Installation Zertifikat B

  • Dann Computer C Computer A des Kommunikations Vertrauen? Ich denke, dass sowohl das Zertifikat der Stammzertifizierungsstelle als auch das Zertifikat der anderen Partei installiert werden müssen. Irgendwelche Kommentare oder Ideen?

    Vielen Dank im Voraus, George

  • Antwort

    1

    Computer C die Root-CA (auf Computer A) vertrauen muss. Dann werden alle Zertifikate, die von einem anderen Computer (z. B. Computer D), der von derselben Stammzertifizierungsstelle ausgestellt wurde, präsentiert werden, automatisch als vertrauenswürdig eingestuft.

    Zum Beispiel in Windows, Sie (Standard) bereits haben und das Root-CA-Zertifikat für Verisign vertrauen. Wenn Sie zu einer HTTPS-Site navigieren, die ein Verisign-Zertifikat verwendet, vertrauen Sie ihr automatisch, da Sie Verisign vertrauen und Verisign das Zertifikat für die HTTPS-Site ausgestellt hat.

    IOW - Sie müssen nur der CA vertrauen und ihre Cert installieren.

    +0

    Dank Mark, installiert Zertifikat Root-CA ist in Ordnung, keine Notwendigkeit, das Zertifikat des Herausgebers oder der Person zu installieren, die von dem Root-CA ausgestellt ? – George2

    +0

    Korrigieren. Wenn Sie das Zertifikat der Stammzertifizierungsstelle auf einem Computer installieren, weisen Sie diesen Computer an, * allen von dieser CA * ausgestellten Daten zu vertrauen. –

    2

    Sie haben Schritt 2 falsch, semantisch mindestens. Wenn Sie ein Zertifikat erstellen, das von einer Zertifizierungsstelle signiert wurde, ist es überhaupt nicht signiert, sondern von der Zertifizierungsstelle signiert.

    So auf Maschine C benötigen Sie nur Ihr generierten CA-Zertifikat in dem vertrauenswürdigen CA-Speicher zu setzen. Indem Sie das tun, sagen Sie, dass Sie alles vertrauen, was es signiert hat, in Ihrem Fall Zertifikat B.

    Wie auch immer Sie sagen, Sie verwenden dies für die Kommunikation - beachten Sie, dass wenn Sie etwas wie WCF verwenden, die auf Widerruf überprüfen werden Sie müssen dies deaktivieren, da Ihre generierte Zertifizierungsstelle dies nicht unterstützt.

    +0

    Dank blowdart, "Sie haben Schritt 2 falsch, semantisch mindestens. Wenn Sie ein Zertifikat erstellen, das von einer Zertifizierungsstelle signiert wurde, dann ist es überhaupt nicht selbst signiert, es ist von der CA unterzeichnet." - Es ist mein schlechtes, ich meine unterschrieben von der selbst gegründeten CA. :-) – George2

    +0

    Dank blowdart, in Ihrer Lösung, möchte ich bestätigen, ob Sie meinen, ich muss nur Zertifikat von B in vertrauenswürdigen Herausgeber von Maschine C installieren? Wenn ja, stimme ich nicht zu, da Zertifikat B vom Stammzertifizierungsstellen-Computer A ausgestellt wird, dem Computer B standardmäßig nicht vertraut. – George2

    +0

    (Fortsetzung) Ich denke, ich muss die gesamte Vertrauenskette installieren - Installieren Sie das Zertifikat der Stammzertifizierungsstelle (in meinem Beispiel das Stammzertifizierungsstellenzertifikat von Maschine A) in vertrauenswürdige Stammzertifizierungsstellen von Maschine B. Irgendwelche Kommentare? – George2

    1

    Computer A wird nicht wirklich zu einer "Stammzertifizierungsstelle". Sie müssen ein Stammzertifikat erstellen und es anschließend auf dem Zielcomputer installieren.

    Es ist nicht ganz so einfach, wie das Stammzertifikat auf dem Zielcomputer zu installieren als unterschiedliche Anwendungen unterschiedliche Zertifikatsspeicher verwenden. Beispielsweise müssen Sie Stammzertifikate sowohl in Firefox als auch in Explorer installieren.

    Sie können dann „Kind“ Zertifikate erstellen - von dem Root-Zertifikat signiert - und dem Zielsystem wird das Kind Zertifikat als gültig akzeptiert, weil sie von dem vertrauenswürdigen Stammzertifikat signiert wurden.

    Ein Zertifikat ist nur eine Möglichkeit, den öffentlichen Schlüssel einer Person zu validieren.Das Zertifikat enthält sowohl Ihren öffentlichen Schlüssel im Klartext als auch Ihren öffentlichen Schlüssel, der mit dem privaten Schlüssel des Unterzeichners verschlüsselt wurde. Um den öffentlichen Schlüssel zu validieren, der im Zertifikat veröffentlicht ist, entschlüsseln Sie die verschlüsselte Version des öffentlichen Schlüssels - mit dem öffentlichen Schlüssel des Unterzeichners - und prüfen, ob es sich um die reine Textversion des öffentlichen Schlüssels handelt.

    In einem selbstsignierten Zertifikat verschlüsseln Sie Ihren öffentlichen Schlüssel mit Ihrem privaten Schlüssel. Daher ist ein selbstsigniertes Zertifikat auch ein Stammzertifikat, da in der Kette keine höhere Signaturberechtigung vorhanden ist.

    Zwischenzertifikate können auch zum Signieren anderer Zertifikate verwendet werden. Auf diese Weise können Zertifikate verwendet werden, um eine "Vertrauenskette" zu einem (zumindest theoretisch) vertrauenswürdigen Stammzertifikat aufzubauen.

    Bruce Schneier hat eine angemessene Beschreibung in seinem Buch "Angewandte Kryptographie". Und Peter Gutman hat eine buntere Beschreibung von Zertifikaten an diesem linky:

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

    +0

    Danke billmcc, ich bin an dem von Ihnen erwähnten Problem mit dem Zertifikatspeicher interessiert. Soweit ich weiß, verwaltet Windows Zertifikat von Top-2-Kategorien - currentuser oder localmachine, und unter den 2 Kategorien gibt es unterbenannte Stores. Ist das korrekt? Wenn ja, irgendwelche Werkzeuge, um alle lokalen benannten Speicher zu sehen? – George2

    +0

    "und dann auf dem Zielcomputer installieren." - Zielcomputer meinen Sie in meiner Probe, Computer A oder Computer C? – George2

    +0

    In Ihrem Beispiel ist der Zielcomputer Computer C. – billmcc