mod_ssl SSLCACertificatePath Richtige Verwendung oder Was ist der beste Weg, um mit mehreren akzeptablen Clientzertifikat-Zertifizierungsstellen umzugehen?

9

Ich versuche, die Anweisung mod_proxy SSLCACertificatePath zu verwenden, bin aber ein bisschen verwirrt darüber, wie man sie richtig verwendet.

Hier sind zwei Links, die die SSLCACertificatePath-Direktive erläutern:
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcacertificatepath
http://www.modssl.org/docs/2.8/ssl_reference.html#ToC13

Ich bin mir nicht sicher, wie ich die symbolischen Hash-Links erstellen soll. Der zweite Link besagt, dass die Apache-Make-Datei verwendet werden soll, aber ich habe keine Ahnung, was genau dort gesagt wird.

Jede freundliche Anleitung wäre sehr dankbar.

Vielen Dank für Ihre Zeit.

AKTUALISIEREN

Das Ziel meiner Frage war es, herauszufinden, wie mehrere Zertifizierungsstellen zur Validierung von Endbenutzer-Client-Zertifikaten behandelt werden. Ich wusste nicht, dass mehrere PEM-Zertifikate in einer Datei verwendet werden können, was in meinem Fall eindeutig der richtige Weg ist, um voranzukommen.

hooknc
quelle

Antworten:

5

Wenn Sie sich nicht sicher sind, wie Sie die Symlinks mit dem Hash-Namen erstellen sollen, empfehle ich, sie nicht zu verwenden CACertificatePath, sondern stattdessen zu verwenden CACertificateFile. (Eigentlich ist dies mein Vorschlag im Allgemeinen: Die ordnungsgemäße Wartung eines CACertificateFile kann etwas mehr Arbeit bedeuten, wenn Sie viele CA-Zertifikate haben, die sich häufig ändern, aber Sie sollten wahrscheinlich nicht viele CA-Zertifikate haben, und sie sollten sich sowieso nicht viel ändern. .) Außerdem scheint das Makefile, auf das verwiesen wird, aus Apaches Verteilungs-Tarballs verschwunden zu sein (und der allgemeine Mangel an öffentlichem Aufschrei kann darauf hinweisen, wie viele Personen die "Pfad" -Methode zum Speichern von Zertifikaten verwenden :).

Wenn Sie dies dennoch tun möchten, können Sie gemäß den Anweisungen von DerfK fortfahren (entweder das alte Makefile herunterladen oder ein eigenes Skript / Makefile schreiben, das openssl x509 -noout -hashfür alle Ihre Zertifikatdateien ausgeführt wird und entsprechend benannte symbolische Links erstellt).

voretaq7
quelle
Vielen Dank für Ihre Antwort. Leider werden wir mehrere CA-Zertifikate haben und diese werden sich ändern. Wissen Sie, wie Sie mehrere Zertifikate in einer Datei haben? Ist es so einfach wie das Ausschneiden und Einfügen eines Zertifikats aus einer Datei in eine andere Datei mit allen Zertifikaten?
Hooknc
1
Es ist in der Tat so einfach wie Ausschneiden und Einfügen - ca-bundle.crtin den Apache 1.x-Tagen war mod_ssl enthalten (und immer noch unter certifie.com/ca-bundle/ca-bundle.crt.txt verfügbar ). Aus Sicherheitsgründen würde ich die Datei kommentieren, damit Sie feststellen können, welcher Zertifikatblock zu welcher Zertifizierungsstelle gehört, wenn Sie sie später ändern müssen.
voretaq7
Fantastische Neuigkeiten. Wir werden diese Lösung höchstwahrscheinlich weiterentwickeln. Glücklicherweise ist jemand anderes dafür verantwortlich, diese CRT-Datei generieren zu müssen. Nochmals vielen Dank für Ihre Zeit.
Hooknc
4

Ich habe diesbezüglich einen offenen Fehler gefunden . Abgesehen vom Herunterladen der alten Version von modssl.org, auf die im Fehler verwiesen wird, und dem Abrufen des Makefiles scheint es, dass Sie den Wert des Hashs abrufen können, openssl x509 -in foo.crt -noout -hashobwohl nicht klar ist, worauf sich der Teil ".N" bezieht (möglicherweise war dies der Fall Hash-Kollisionen (z. B. hat das erste Zertifikat mit Hash 12345678 einen Symlink 12345678.1, der darauf verweist, das zweite Zertifikat mit demselben Hash verwendet .2? Oder beginnt es mit .0?)

Wenn Sie die Makefile.crtDatei aus dem alten modssl erhalten, würden Sie sie meiner Meinung nach in den Ordner mit all Ihren Zertifikaten legen und dann make -f Makefile.crtin diesem Ordner ausführen .

DerfK
quelle
Vielen Dank für Ihre Antwort. Das Zeigen auf diesen Fehlerbericht hat wirklich geholfen. Hier ist der direkte Link zum Herunterladen der im Fehler erwähnten Ressource: modssl.org/source/mod_ssl-2.8.31-1.3.41.tar.gz Ich habe mir Makefile.crt angesehen und glaube, dass Sie korrekt sind über das Nummerierungsschema, aber ich bin nicht sehr gut in * nix-Skripten. <hash> .1, <hash> .2, <hash> .3 usw. Ich habe versucht, die von Ihnen empfohlenen Befehle und dann den symbolischen Link als Hash zu verwenden, und alles schien zu funktionieren. Ich muss es jetzt mit mehreren CA-Dateien versuchen.
Hooknc
1
Die Nummerierung beginnt mit .0.
Raman
1
Hier ist das Makefilebereits aus dem tar.gz extrahierte: gist.github.com/rocketraman/9228a42b78e094b3c2218f6e57844ee0
Raman
Das Ausführen make -f Makefile.crtin dem Ordner mit Zertifikaten führt zu einem Makefile.crt ... SkippedFehler.
Ernst