Frage

Im Moment arbeite ich an einem Projekt, wo ich ein CA-Zertifikat und ein paar Kind certs zu diesem CA-Zertifikat erstellt habe. Die Zertifikate werden verwendet werden Kommunikation zwischen Servern in einem SAMLv2 Setup zu schützen, damit ich ein CERT für die Identity-Provider und einen CERT für den Dienstleister haben werde. Der Benutzer / Browser wird nicht die certs zu validieren, so dass es nur den Server ist, der muss meinem benutzerdefinierten CA vertrauen Mein cert Baum etwas wie folgt aussieht:

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

Jetzt habe ich eine Menge Leute sagen höre schlecht es ist ein hausgemachtes Zertifikat in der Produktion zu verwenden. Aber wenn ich frage, warum, murmeln Menschen in der Regel nur etwas über Sicherheit, aber nie in die Details gehen. Gibt es technische Gründe nicht meine eigenen certs in der Produktion zu verwenden? Ich kann mich an jeden ... Natürlich merke ich, dass, wenn ich die Kontrolle über meine Wurzel verlieren cert jemand anfangen konnte alle Arten von Zertifikaten zu schaffen. Aber in diesem Fall müßten sie auch die Zertifikate installieren auf meinem Server und konfigurieren Sie die SAML-Anwendung, sie zu nutzen. Erst dann konnten sie gefälschte saml Anfragen und Antworten auf meine Anwendungen zu generieren beginnen.

Wenn dies das einzige Problem ist, diese Lösung (hausgemachte certs in der Produktion) wäre immer noch besser als die Login-Setup wir heute haben.

War es hilfreich?

Lösung

Fragen Sie sich, was ein Zertifikat belegt.

Wenn Sie ein Zertifikat von einem seriösen CA ausgestellt bekommen, dann beweist es, dass der Zertifikatsinhaber, ihre Identität zu diesem CA überprüft hat, um ihre Beweisstandards.

Wenn Sie ein Zertifikat von einem Ad-hoc-CA ausgestellt bekommen, dann beweist es, dass jemand weiß, wie Zertifikate zu machen.

Wenn Sie beide Ende des Gesprächs steuern, ich denke, es ist in Ordnung Ihre eigenen privaten CA für den Zweck zu haben. Sie würden eine eigene CA vertrauen Sie können sich wahrscheinlich in der Tat dies sehr sicher machen (durch den privaten CA-Schlüssel an einem sicheren Ort offline zu halten, und machte eine sneakernet Übung Unterzeichnung).

Die Schwierigkeit wäre, wenn Sie jemand anderes zu überzeugen, benötigt, um Ihre CA zu vertrauen Warum sollten sie auch? Sie würden sie davon überzeugen müssen, dass es sicher war, dies zu tun, und sie würden den Admin-Overhead Ihres CA-Zertifikat für ihre Kunden hinzuzufügen.

Andere Tipps

Da Sie nur das Zertifikat mit dem Netzwerkverkehr zu schützen und nicht authentifizieren Benutzer / Computer es dann klingt wie Sie eine legitime Verwendung haben für die Verwendung von MakeCert.exe.

Ich fühle mich gibt es eine Sache, erwähnenswert. Nachdem Sie einige Zeit, die Arbeit mit dem MakeCert.exe Schnittstelle ausgeben können Sie stattdessen einen Stand-Alone Root Certificate Server prüfen, verwendet wird.

Beachten Sie auch diese Punkte:

  • (Fast) Alle Versionen von Windows Server enthalten Certificate Server-Dienste kostenlos
  • Windows-Stand-Alone CA Server ist extrem einfach zu installieren und konfigurieren
  • Windows-Stand-Alone-CA-Server kann auf einer virtuellen Maschine installiert werden und ein- / ausgeschaltet werden, wenn Sie ein zusätzliches Zertifikat
  • ausgeben müssen
  • Eine VM basierten Windows-Stand-Alone CA Server kann mit sehr wenig Speicher ausgeführt werden (ex. 256 MB)
  • Windows-Stand-Alone CA Server enthält einen schönen und sauberen Web-basierten Registrierungs Schnittstelle anfordernden Zertifikate zu vereinfachen.
  • CRL-Prüfung verwendet werden kann oder nicht verwendet werden, je nach Bedarf.

In der Vergangenheit habe ich begann mit SelfSSL.exe und zog schließlich nach MakeCert.exe ein Stammzertifikat zu generieren und erteilt dann meine Client-Zertifikate. Aber nachdem er mit der Syntax zu kämpfen und immer daran denken, mit dem ich setzen, dass Root-Zertifikat Ich schaltete über einen Stand-Alone Root CA in einer virtuellen Maschine verwendet wird.

Wenn die Zertifikate nur weitergegeben werden um intern, zwischen Ihren eigenen Servern (und nicht durch die Kunden, die eine oder die andere verwendet wird) - dann ist es vollkommen akzeptabel Ihren eigenen internen CA.
verwenden JEDOCH ein Vorschlag - nicht haben Ihre Root-CA-Provider Zert ausstellen. Verwenden Sie stattdessen Ihre Root-CA eine Zwischen-CA zu schaffen - dann, dass Anbieter Zertifikate auszustellen verwenden. Dies wird Ihnen längere Sicht helfen, wenn Sie das Ablaufdatum des Zertifikats beginnen müssen die Verwaltung, die System / Infrastruktur, Sperrlisten erstreckt, etc.

Es gibt kein wirkliches Problem mit einem selbst signierten Zertifikat in der privaten Gebrauch verwendet wird, dass die Verwendung ist, wenn Sie alle Systeme steuern, die dem Homebrew-Root-Zertifikat vertrauen müssen.

Sie manuell installieren Ihr Root-Zertifikat auf jedem der Systeme, die sie vertrauen müssen.

Sie können dies tun, in der Produktion als auch für die Browser-Nutzung - zum Beispiel innerhalb einer Organisation, in dem Root-CA ausgerollt über Software distrubution Methode werden kann - es gibt keinen Grund zu Lasten zu gehen, um eine Zertifizierungsstelle zu zahlen, dass Microsoft geschieht vertrauen.

[Bearbeiten] In Bezug auf die secruity ist das Thema einer von den privaten Schlüssel für Ihr Root-Zertifikat enthält, solange man Sie privat sicherstellen können, dass bleibt dann aus dieser Wurzel jedes Zertifikat validieren können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top