Tomcat Server / Client selbstsigniertes SSL-Zertifikat
Ich habe einen Apache Tomcat 6.x-server läuft mit einem selbst-signierten SSL-Zertifikat. Ich möchte den client zu präsentieren, Ihr eigenes Zertifikat an den server, so kann ich diese authentifizieren, basierend auf einer Datenbank von Benutzern. Ich habe es all die Arbeit basiert auf einem Beispiel, das ich online gefunden, aber das Beispiel kam mit Dosen-Zertifikate und ein pre-build JKS datastore. Ich möchte mein eigenen datastore mit meinen eigenen certs aber ich habe kein Glück.
Wie erstelle ich einen datastore für Tomcat?
Wie erstelle ich ein selbstsigniertes Zertifikat für den Tomcat?
Wie erstelle ich ein selbstsigniertes Zertifikat für den client?
Wie kann ich erzwingen, Tomcat Vertrauen der Unterschrift des Kunden?
Spiele ich schon mit dem java-keytool für viele Stunden jetzt.
InformationsquelleAutor der Frage davidemm | 2009-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich die Lösung für mein problem, also werde ich die Ergebnisse hier posten, wenn jemand feststeckt.
Dank an Michael Martin von Michael ist Software-Gedanken & Geschwafel entdeckte ich, dass:
Habe ich einfach festgelegt, dass flag, gelöscht, alle caches in FireFox und es funktionierte wie ein Charme! Ich benutze dies als ein test-setup für mein Projekt und ich brauchen, um zu teilen mit anderen Menschen, so schrieb ich ein kleines batch-Skript erstellt zwei SSL-Zertifikate. Man kann fallen gelassen werden, in den Tomcat-setup und der andere ist ein .p12-Datei, die importiert werden können, die in FireFox/IE. Danke!
Verwendung: erste Kommandozeilen-argument ist der Benutzername des Clients. Alle Passwörter sind "Passwort" (ohne Anführungszeichen). Ändern der hart-codierten bits, um Ihre Bedürfnisse zu erfüllen.
Resultat sind zwei Dateien. Eine namens-server.jks, dass Sie drop in Tomcat und eine weitere Datei namens " {username}.p12, die Sie importieren in den browser. Die server.jks-Datei hat das client-Zertifikat als trusted cert.
Ich hoffe, jemand findet das nützlich.
Und hier ist die XML, muss Hinzugefügt werden, um Ihre Tomcat conf/sever.xml Datei (nur getestet auf Tomcat 6.x)
Für Tomcat 7:
InformationsquelleAutor der Antwort davidemm
Aktivieren Sie client-Authentifizierung, müssen Sie einen "trust store" für Tomcat: ein Schlüssel zu speichern, die Zertifikate von Stammzertifizierungsstellen, denen Sie Vertrauen, jeweils gekennzeichnet als "trustEntry".
Dies wird durch die
Connector
element Attribute:truststoreFile
truststorePass
(was standardmäßig der Wert vonkeystorePass
), undtruststoreType
(die standardmäßig auf "JKS").Wenn ein client ein selbstsigniertes Zertifikat, dann seine "root" CA ist das Zertifikat selbst; es folgt, dass Sie müssen zum importieren der client ist selbst-signierte Zertifikat in Tomcat ' s trust store.
Wenn Sie viele Kunden, dies wird schnell ein Streit. In diesem Fall möchten Sie vielleicht einen Blick in signing-Zertifikate für Ihre Kunden. Die Java -
keytool
Befehl kann das nicht tun, aber alle die notwendigen Befehlszeilen-Dienstprogramme sind in der OpenSSL. Oder man konnte sich in so etwas wie EJBCA auf einer großen Skala.Besser noch, Fragen Sie Ihren Kunden zur Nutzung einer vorhandenen freien CA, wie startcom.org. Das muss nicht immer Arbeit für server-Zertifikate, weil StartCom-Zertifikat ist nicht im Lieferumfang enthalten, in allen Browsern, aber diese situation ist Umgekehrt, und das StartCom root Zertifikat konnte problemlos importiert werden, um den Tomcat-trust-Shop.
InformationsquelleAutor der Antwort erickson
Zertifikat erstellen:
Geben Sie alle Daten für das selbstsignierte Zertifikat, das Sie benötigen, dann Bearbeiten Tomcat server.xml und geben Sie das keystore-Eigenschaften auf den SSL-connector, z.B.:
oder Folgen Sie den Tomcat-docs...
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
InformationsquelleAutor der Antwort Jon
Die bisherigen Antworten sind für mich nützlich, aber nicht über ein shell-tool version. Also schrieb ich einen.
key_gen.sh:
Für
tomcat8
könnte fügen Sie die folgende config zuserver.xml
:InformationsquelleAutor der Antwort Eric Wang