2014-07-03 12 views
9

Die Frage ist sehr klar, aber ich habe kein nützliches Tutorial online gefunden. Ich wünschte, ich könnte hier etwas Glück haben.Wie Client-Zertifikat-Authentifizierung mit Apache

Grundsätzlich möchte ich eine Client-Zertifikat-Authentifizierung mit Apache erstellen. Ich habe die Conf-Datei für Apache für die Site konfiguriert, die ich hosste. Der Conf I ist hier:

SSLVerifyClient require 
SSLVerifyDepth 1 
SSLCACertificateFile /etc/apache2/ssl/client.crt 

Allerdings habe ich keine Ahnung, wie Sie das Zertifikat und die Schlüsseldatei für den Client generieren. Und welche Datei sollte ich in die SSLCACertificateFile in den Apache Serverkonfigurationen legen?

Vergleicht der Server einfach die vom Client gesendete Zertifikatsdatei mit der Zertifikatsdatei auf dem Server? Was genau macht die Client-Zertifikat-Authentifizierung?

+0

Sie sind off Thema und Ihre Frage ergibt keinen Sinn. Wenn Sie den Server ausführen, generieren Sie nichts für den Client. Der Client generiert seinen eigenen Schlüssel und sein Zertifikat. Wenn er möchte, dass Sie ihn authentifizieren, liegt es auch an ihm, ihn entweder von einer CA, der Sie vertrauen, zu signieren oder an Sie zu exportieren. – EJP

+3

@EJP, das ist falsch: Wenn Sie eine eigene CA haben, generiert der Client eine Schlüssel- und Zertifikatsanforderung, dann generieren Sie ein Zertifikat (mit der Cert-Anfrage und Ihrer CA). Sie können dann überprüfen, ob ein Benutzer eine Verbindung mit einem Zertifikat (und einem übereinstimmenden Schlüssel) herstellt, das von Ihrer Zertifizierungsstelle "signiert" wurde. – jcaron

Antwort

11

Sie finden Anweisungen, wie ein CA-Zertifikat und Zert dieses CA-Zertifikat hier unterzeichnet zu erstellen: http://pages.cs.wisc.edu/~zmiller/ca-howto/

Dinge gehen wie folgt aus:

  • Einrichtung Ihres Root-CA-Schlüssel und Zertifikat
  • Client generiert seinen privaten Schlüssel und das Zertifikat Anfrage
  • sie Ihnen die Zertifikatsanfrage senden
  • Sie erzeugen das Zertifikat mit der Zertifikatsanforderung, Ihr Root-CA-Zertifikat und Root-CA-Schlüssel
  • Sie kehren das Zertifikat an den Client

Sie können dann prüfen, ob der Client ein Zertifikat präsentiert, die von der Zertifizierungsstelle „signiert“ sind

+0

Das macht so viel Sinn Danke! Welcher Schlüssel wird während des Verifizierungsprozesses verwendet? – user3354832

+0

Ist also das Client-Zertifikat völlig unabhängig vom Server-Zertifikat? – user3354832

+0

Von dem Server-Zertifikat (das Sie in den meisten https-Situationen verwenden), ja. Es ist nur mit dem Zertifikat der Stammzertifizierungsstelle verknüpft. – jcaron