Wie erstelle ich ein signiertes Zertifikat für einen * .local-Namen?

529
nowox

Meine Firmennutzung .localfür Intranet-Webdienste. Ich habe vor kurzem einen GitHub Enterprise Server installiert, der auf diesem Server verfügbar ist github.mycompany.local. Leider scheint es unmöglich, auf solchen Erweiterungen ein signiertes Zertifikat zu erstellen.

Ich möchte eine Lösung finden, bei der ich ein vertrauenswürdiges Zertifikat verwenden kann, das sowohl von meinem Webbrowser als auch von meinem lokalen Git akzeptiert wird, ohne meinen Server in die DMZ einbauen zu müssen.

Was sind die Möglichkeiten?

Lassen Sie uns das mit anderen Worten erklären. Ein Unternehmen möchte Intranet-Webdienste haben, diese Dienste müssen jedoch mit TLS / SSL gesichert werden. Da sie keine Verbindung zur realen Welt haben können, können sie kein "signiertes Standardzertifikat" verwenden. Wie können sie dies tun, ohne aufzugeben und zwischen folgenden Optionen wählen:

  1. Lassen Sie uns unsere Mitarbeiter so erziehen, dass sie jedes Mal, wenn sie unsere Web-Services annehmen möchten, selbstsignierte Zertifikate akzeptieren ...
  2. Lass uns einfach HTTP verwenden. Die Login-Passwörter werden eindeutig ausgetauscht, aber niemand wird versuchen, das Unternehmen von innen heraus zu hacken ...
0
Möglicherweise möchten Sie Folgendes anzeigen - - https://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority Anaksunaman vor 6 Jahren 0
Eine weitere Option besteht darin, einen eigenen Zertifizierungsstellenserver einzurichten, Ihre Zertifikate zu generieren und die Browserkonfiguration als vertrauenswürdig einzustufen. Frank Thomas vor 6 Jahren 1
@FrankThomas Ist das etwas Gemeinsames? Ich kenne eine Firma, die einen mittleren Mann zwischen Intranet und Internet stellt, weil sie wissen wollen, was Mitarbeiter aus Sicherheitsgründen tun. nowox vor 6 Jahren 0
Nun, normalerweise handelt es sich dabei um eine Zertifikatsubstitutionsmethode, bei der sie die Einleitung der https-Verbindung abfangen und sich in der Mitte einfügen, den Webdatenverkehr entschlüsseln und ihn dann erneut verschlüsseln, bevor er an den Client übermittelt wird. In meinem Vorschlag hätten Sie eine absolut legitime Zertifizierungsstelle, aber keine Software wird ihr vertrauen, wenn sie nicht dazu aufgefordert wird. Frank Thomas vor 6 Jahren 0

1 Antwort auf die Frage

1
Robbie Mckennie

Ich würde Geld auf den Tisch legen und sagen, dass es einfach unmöglich ist, ein Zertifikat von einer seriösen Zertifizierungsstelle für eine .localDomäne zu erhalten, aus dem gleichen Grund, für das Sie kein Zertifikat erhalten können localhost.

Um Zertifikate für eine solche Domäne auszustellen, können Sie Ihre eigene Zertifizierungsstelle einrichten und sie der vertrauenswürdigen Zertifizierungsstelle für Ihre Unternehmenscomputer hinzufügen. Es hängt vom Betriebssystem ab, worauf es ankommt. Sie können möglicherweise auch die selbstsignierte Zertifizierungsstelle in Ihren lokalen Zertifikatspeicher importieren, um die Warnung zu entfernen.

Eine grobe Richtlinie wäre:

  • Richten Sie eine Maschine als Zertifizierungsstelle ein
  • Erstellen Sie ein Root-Zertifikat
  • Fügen Sie das Zertifikat als CA-Zertifikat zu den Computern Ihres Unternehmens hinzu, damit Zertifizierungsaufgaben Ihrer Zertifizierungsstelle vertrauenswürdig sind
  • Beginnen Sie mit der Ausstellung von Zertifikaten oder richten Sie ein komplexeres System mit einer Zwischenzertifizierungsstelle ein
Wissen Sie, wie man dies mit Git in der Kommandozeile macht? Mein Problem mit SSL ist, dass mein Git die Verbindung zu meiner GitHub-Appliance ablehnt, weil das Zertifikat nicht sicher genug ist. nowox vor 6 Jahren 0
Sie würden das Betriebssystem selbst konfigurieren. Wenn ich mehr Details über die Maschine mit dem Befehl git und die Erstellung Ihres Zertifikats hätte, könnte ich Sie auf eine bessere Ressource verweisen. Robbie Mckennie vor 6 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/66758/discussion-between-robbie-mckennie-and-nowox). Robbie Mckennie vor 6 Jahren 0
Haben Sie die hier beschriebenen .gitconfig-Einstellungen ausprobiert? https://stackoverflow.com/questions/13957294/connect-to-github-enterprise-from-egit-over-over-https-mit-selbstsigniert-zertifikat Frank Thomas vor 6 Jahren 0
@RobbieMckennie Sie sagten "Beginnen Sie mit der Ausstellung von Zertifikaten oder richten Sie ein komplizierteres System mit einer Zwischenzertifizierungsstelle ein". Ich weiß nichts darüber, aber ich gehe davon aus, dass es möglich ist, eine signierte öffentliche Instanz wie "ca.mycompany.com" zu haben, die Zwischen-Stammzertifikate für "* .mycompany.local" bereitstellt. In diesem Fall muss ich möglicherweise nicht auf allen Computern des Unternehmens root-ca installieren. Ist das korrekt? nowox vor 6 Jahren 0
@nowox Ich weiß nichts über Zwischen-CAs. Ich habe diesen Teil der Antwort nicht geschrieben. Soweit ich weiß, besteht die einzige Möglichkeit, dass ein Computer einem Zertifikat für eine `.local'-Domäne vertraut, darin, sich selbst zu signieren und Ihr CA-Zertifikat auf diesem Computer zu installieren. Wenn ich falsch liege, würde ich gerne mehr lernen, aber das ist alles, was ich Ihnen sagen kann. Robbie Mckennie vor 6 Jahren 0