Vertrauen Sie einem selbstsignierten PEM-Zertifikat

23
  1. Ich habe einen Proxy-Server mit SSL mithilfe eines PEM-Zertifikats eingerichtet. Nun gibt es einige von mir, denen ich dieses Zertifikat automatisch anvertrauen möchte (ohne dass sich der Webbrowser beschwert). Wie kann ich ein PEM-Zertifikat auf jedem Computer installieren?

  2. Was wird außerdem empfohlen: Erstellen eines selbstsignierten Zertifikats oder Verketten des snakeoil-Zertifikats?

Teresa und Junior
quelle

Antworten:

10

Browser verfügen über eine Liste vertrauenswürdiger "Zertifizierungsstellen" -Zertifikate. Wenn das Zertifikat eines Servers von einem dieser CA-Zertifikate signiert und ordnungsgemäß erstellt wurde, wird die SSL-Warnung nicht angezeigt.

Viele Browser werden mit vielen gängigen Zertifizierungsstellenzertifikaten wie Verisign, Thawte usw. geliefert. In den meisten Browsern können Sie eine neue Zertifizierungsstelle in diese Liste vertrauenswürdiger Zertifizierungsstellen importieren.

So wie Sie Ihr eigenes selbstsigniertes Serverzertifikat erstellen, können Sie auch Ihr eigenes selbstsigniertes CA-Zertifikat erstellen. Sie können das dann verwenden, um Ihr Serverzertifikat zu signieren. Wenn Ihre Zertifizierungsstelle nicht von einer bekannten Firma bereitgestellt wird, was nicht der Fall wäre, wenn Sie sie selbst erstellt haben, muss sie auf der Serverseite explizit importiert werden.

Ich habe das schon früher gemacht xca. Es enthält Vorlagen für Zertifizierungsstellen und HTTP-Server. Das Verfahren ist das folgende:

  • Erstellen Sie einen privaten Schlüssel für Ihre Zertifizierungsstelle
  • Erstellen Sie mit diesem Schlüssel eine selbstsignierte Zertifizierungsstelle, indem Sie die Vorlage "CA" verwenden
  • Erstellen Sie einen privaten Schlüssel für Ihren Proxy-Server
  • Erstellen Sie mit dem zweiten Schlüssel eine "Certificate Signing Request" (CSR), die auf die soeben erstellte Zertifizierungsstelle verweist.
  • "Unterschreiben" Sie die CSR, und Sie erhalten das Proxy-Server-Zertifikat, das auf Ihre eigene Zertifizierungsstelle verweist.

Sie müssen dann xcadas CA-Zertifikat exportieren (als Datei, wenn Sie es verwenden ) (aber natürlich ohne privaten Schlüssel). A .pemwird generiert, aber Sie können die Erweiterung auf ändern .crt. Wenn ein Benutzer darauf klickt, wird die Installation in Firefox und Internet Explorer sowie möglicherweise in anderen wichtigen Browsern angeboten. Bei der automatischen Installation dieser .crt können Sie:

  • Verwenden Sie Gruppenrichtlinien im Internet Explorer
  • Leiten Sie die Benutzer auf eine Einführungsseite, auf der sie aufgefordert werden, die CRT-Datei herunterzuladen / zu installieren, um Warnungen zu vermeiden.

Sie können dann die Exportfunktionen für HTTP-Serverzertifikate verwenden (sowohl privaten Schlüssel als auch Zertifikat für die Serverseite exportieren), um Ihren Proxyserver einzurichten.

LawrenceC
quelle
17
  1. Kopieren Sie Ihr Zertifikat /etc/ssl/certsauf das Zielsystem. Erstellen Sie dann einen Symlink den Hash durch den Befehl erzeugt unter Verwendung von openssl x509 -noout -hash -in ca-certificate-fileErsatz ca-certificate-filemit Ihrem Zertifikat Namen. Ihr Zertifikat sollte dann von allen Programmen ohne eigenen Zertifikatspeicher akzeptiert werden.

    Für Programme mit einem eigenen Zertifikatspeicher (Browser, Java und andere) müssen Sie das Zertifikat importieren.

  2. Am besten erstellen Sie Ihr eigenes selbstsigniertes oder signiertes Zertifikat.

    Möglicherweise möchten Sie tinyca2Ihre eigene Zertifizierungsstelle installieren und generieren. Sie können das Zertifizierungsstellenzertifikat wie in den obigen Schritten beschrieben importieren. Generieren Sie signierte Zertifikate für Ihre Anwendungen und stellen Sie sie bereit.

    Verteilen Sie Ihr CA-Zertifikat an die Benutzer, die Ihrem Zertifikat vertrauen müssen. Möglicherweise müssen Sie Informationen zum Importieren des Zertifikats angeben. WARNUNG: In diesem Fall werden Sie zu einer anderen vertrauenswürdigen Zertifizierungsstelle. Sichern Sie Ihre Zertifizierungsstelle entsprechend.

    Viele Tools können auch so konfiguriert werden, dass sie selbstsignierten Zertifikaten oder Zertifikaten mit nicht vertrauenswürdigen Zertifizierungsstellen vertrauen. Dies ist normalerweise eine einmalige Aktion. Dies kann sicherer sein als das Akzeptieren eines CA-Zertifikats von einer unsicheren Stelle. Nur das akzeptierte Zertifikat wird als vertrauenswürdig eingestuft.

BillThor
quelle
Kann dies präzisiert werden? Beispiel: Host A sendet eine E-Mail an Host B und beschwert sich, dass die Identität von B nicht überprüft werden kann. Auf Host B haben wir ein selbstsigniertes Zertifikat erstellt: /etc/ssl/certs/ssl-cert-snakeoil.pem(Dies ist das, was das Debian-Paket ssl-certfür Sie erstellt). Wir kopieren es auf Host A und rufen es auf /etc/ssl/certs/host-B.pem(da dieser Host möglicherweise bereits einen hat ssl-cert-snakeoil.pem). Dann rennen wir los ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem).
Alex Schröder
1
@ AlexSchröder hab ich oben bearbeitet. Sie sollten Ihr snakeoil-Zertifikat nicht importieren. Wenn Sie jedoch eine eigene Zertifizierungsstelle eingerichtet haben, ist es sinnvoll, dass sie Ihre Zertifizierungsstelle importieren. Ich habe noch keine Vertrauensprobleme zwischen SMTP-Servern festgestellt. Den meisten Clients kann gesagt werden, dass sie einzelnen Zertifikaten vertrauen sollen.
BillThor
Vielen Dank. Ich habe diese Frage gefunden, als ich nach einer Erklärung für einen Protokolleintrag gesucht habe, den ich erhalte. Die Erklärung, die ich gefunden habe, war, dass, wenn A E-Mails an B sendet, A meldet, dass es nicht möglich ist, die Identität von B zu überprüfen.
Alex Schröder,
Genau das habe ich gesucht! -- Danke dir! Jetzt kann ich mit davfs meinen gesicherten webDAV mounten, ohne mich zu stören.
Wyatt8740
13

Unter Debian und Ubuntu haben Sie das zu kopieren , certificate.pemzu /usr/local/share/ca-certificates/certificate.crtund dann laufen dpkg-reconfigure ca-certificates. /etc/ssl/certswird von diesem Befehl verwaltet.

Thom Wiggers
quelle