Client-SSL mit Self-Signed CA funktioniert nicht
Ich kämpfen mit einem SSL-problem für mehr als 1 Monat.
Wir haben openssl zum generieren von unserer eigenen CA -, server-und client-Zertifikate. Wir haben auch
aktivieren Sie "SSLrequire" auf dem Apache-web-server (in htaccess-diese kann falsch sein), was bedeutet, dass jeder, der versucht, eine Verbindung über https auf die
server muss ein gültiges Zertifikat vorweisen
Den Schritt sind wie folgt;
- erzeugen der CA-Schlüssel
- generieren des CA-CSR -
- Zeichen der ZERTIFIZIERUNGSSTELLE die CSR der CA-Schlüssel
also haben wir unsere eigene CA, die verwendet wird, um Zeichen unserer server-und client-Zertifikate.
nächsten Schritt
- generieren-server-Schlüssel
- generieren von server-CSR
- Zeichen CSR-server mit dem CA-Schlüssel
Also haben wir unsere server-Zertifikat & server-private-key den wir installiert erfolgreich auf dem server
Nächsten wir
- client-Schlüssel generieren
- generieren client-CSR
- sign client CSR-mit-CA-Schlüssel
Wir dann verteilen Sie das client-Zertifikat, um unsere Nutzer zusammen mit dem CA-Zertifikat.
Beide waren installieren in Ihrem Browser.
Wenn Sie versuchen, zu verbinden, haben wir den "Peer nicht erkennt und Vertrauen in die ZERTIFIZIERUNGSSTELLE, die Ihr Zertifikat ausgestellt.
"Fehler.
Haben wir festgestellt, das problem ist, dass das self signed CA Zertifikat wurde nicht auf dem server installiert. Normalerweise wird der server
eine Liste der vertrauenswürdigen ZERTIFIZIERUNGSSTELLE auf dem Gerät versucht sich zu verbinden und das Gerät gesendet werden müssen, ein Zertifikat
signiert wurde von einer der Zertifizierungsstellen wird durch den server vorgestellt hat. Aber da unser selbst signiertes CA-Zertifikat
wurde nicht auf dem server installiert, der browser könnte ein Zertifikat, das nicht akzeptabel ist, von der
server.
Also machten wir uns auf den installieren Sie das CA-Zertifikat auf dem server - control-panel Hsphere.
Nahmen wir den Inhalt des ca-Zertifikat und kopiert es in die "Certificate-Authority-Datei" textarea-Komponente auf dem server
und der server würde nicht akzeptieren, es jedes mal beschweren, "Fehler beim aktualisieren der SSL-Config-Verschiedene Schlüssel und das Zertifikat"
Dem CA-Zertifikat signiert wurde, von selbst so, wie können die dem server sagen, dass das Zertifikat und der Schlüssel sind unterschiedlich.
Wir haben auch versucht zu kopieren Sie den Inhalt sowohl der CA Zertifikat Datei und der CA-Schlüssel-Datei in das "Certificate-Authority-Datei" textarea, aber das würde auch nicht funktionieren.
Als ich sagte, wir haben zu kämpfen mit diesem seit mehr als einem Monat. Wenn jemand helfen kann wäre das echt zu schätzen.
Wenn wir zahlen müssen, für den service, lassen Sie es uns bitte wissen.
Vielen Dank im Voraus.
- Sie möchten möglicherweise versuchen Sie es serverfault.com eher zu finden admins, die verwendet hsphere.
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Vielleicht https://serverfault.com/ wäre ein besserer Ort für diese Frage.)
Hier sind ein paar Optionen, die Sie verwenden können, in die Apache Httpd-Konfiguration (ich bin mir nicht sicher, wie das abgebildet ist, um Ihre Konfiguration).
SSLCertificateFile
undSSLCertificateKeyFile
sind die grundlegenden Anforderungen zum aktivieren von SSL auf Ihrem server.Weil Sie es wollen-client-Zertifikat-Authentifizierung, müssen Sie zum konfigurieren eines
SSLCACertificatePath
(für directory) oderSSLCACertificateFile
(für eine Datei) zu sagen, welche CAs Sie Vertrauen möchten, so fügen Sie CA-Zertifikat gibt. Sollten diese Dateien im PEM-format. Jedes Zertifikat, das in es wird als vertrauenswürdig (obwohl es sich möglicherweise benötigen Sie die CA-basic constraint, ich kann mich nicht erinnern, das ist schon standard, wenn Sie generiert haben ein root-CA-Zertifikat selbst sowieso).Zusätzlich zu diesem, können Sie Zertifikate in einem
SSLCADNRequestFile
. Dies sollte nicht notwendig sein, da es automatisch mit Daten gefüllt, aus derSSLCACertificatePath
oderSSLCACertificateFile
Zertifikat-Richtlinien, aber wenn Sie mehr Kontrolle haben möchten, auf der Liste der CAs-server wirbt, kann es akzeptieren, das ist, wo es zu tun. Nur zur Klarstellung, das ist nicht das, was gelingt, das Vertrauen in die client-Zertifikate, aber nur, was der server wirbt er Vertrauen darf, so müssen Sie nochSSLCACertificatePath
oderSSLCACertificateFile
. Vielleicht haben Sie "Certificate-Authority-Datei" option in Ihre Konfiguration panel-Steuerelemente, und nicht eine der anderen beiden Optionen.Einen Weg, um zu Debuggen, dies zu tun, das man die Befehlszeile:
Dieser Liste sollte die Zertifikat-Kette, die Sie präsentieren erste (es wäre gut, wenn Sie die ganze Kette bis zu der CA, wie einige Kunden zu benötigen scheint es manchmal, soweit ich mich erinnere). Dann sollte es die Liste der CAs, es ist bereit zu akzeptieren, für die client-Zertifikat-Authentifizierung, oder No client certificate CA names gesendet anders (in dem Fall gibt es ein problem mit einem der oben genannten Richtlinien). Dies gibt Ihnen zumindest einen Anhaltspunkt, wie
SSLCADNRequestFile
oderSSLCACertificatePath
/SSLCACertificateFile
konfiguriert wurden (obwohl es die letzten zwei, egal).