Endlich habe ich die Lösung für mein Problem, also werde ich die Ergebnisse hier posten, wenn jemand anderes steckenbleibt.
Dank Michael Martin von Michael's Software Thoughts & Ramblings entdeckte ich, dass:
Keytool standardmäßig die DSA Algorithmus verwendet, wenn die selbst signiertes Zertifikat zu generieren.Frühere Versionen von Firefox akzeptiert diese Schlüssel ohne Problem. Mit Firefox 3 Beta 5, mit DSA funktioniert nicht, aber mit RSA tut. Übergabe "-keyalg RSA" bei der Generierung das selbstsignierte Zertifikat erstellt eine cert die Firefox 3 Beta 5 vollständig akzeptiert.
Ich habe einfach diese Flagge gesetzt, alle Caches in FireFox gelöscht und es funktionierte wie ein Zauber! Ich benutze dies als Test-Setup für mein Projekt und ich muss dies mit anderen Leuten teilen, also schrieb ich ein kleines Batch-Skript, das zwei SSL-Zertifikate erstellt. Einer kann in das Tomcat-Setup eingefügt werden und der andere ist eine .p12-Datei, die in FireFox/IE importiert werden kann. Vielen Dank!
Verwendung: Das erste Befehlszeilenargument ist der Benutzername des Clients. Alle Passwörter sind "Passwort" (ohne Zitate). Ändern Sie eines der hartcodierten Bits, um Ihre Anforderungen zu erfüllen.
@echo off
if "%1" == "" goto usage
keytool -genkeypair -alias servercert -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass password -keystore server.jks -storepass password
keytool -genkeypair -alias %1 -keystore %1.p12 -storetype pkcs12 -keyalg RSA -dname "CN=%1,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass password -storepass password
keytool -exportcert -alias %1 -file %1.cer -keystore %1.p12 -storetype pkcs12 -storepass password
keytool -importcert -keystore server.jks -alias %1 -file %1.cer -v -trustcacerts -noprompt -storepass password
keytool -list -v -keystore server.jks -storepass password
del %1.cer
goto end
:usage
echo Need user id as first argument: generate_keystore [username]
goto end
:end
pause
Die Ergebnisse sind zwei Dateien. Eine namens server.jks, die Sie in Tomcat einfügen, und eine andere Datei namens {username} .p12, die Sie in Ihren Browser importieren. In der Datei server.jks ist das Clientzertifikat als vertrauenswürdiges Zertifikat hinzugefügt.
Ich hoffe, dass jemand anderes das nützlich findet.
Und hier ist das die XML, die Ihren Tomcat conf/sever.xml Datei hinzugefügt werden muss (nur auf Tomcat 6.x getestet)
<Connector
clientAuth="true" port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${catalina.home}/conf/server.jks"
keystoreType="JKS" keystorePass="password"
truststoreFile="${catalina.home}/conf/server.jks"
truststoreType="JKS" truststorePass="password"
SSLVerifyClient="require" SSLEngine="on" SSLVerifyDepth="2" sslProtocol="TLS"
/>
Für Tomcat 7:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" SSLEnabled="true"
maxThreads="200" scheme="https" secure="true"
keystoreFile="${catalina.base}/conf/server.jks" keystorePass="password"
clientAuth="false" sslProtocol="TLS" />
Vielen Dank dafür! Ich habe den ganzen Tag mit verschiedenen "Tutorials" herumgespielt und dies ist das erste, mit dem wirklich gearbeitet wurde mit clientAuth = "true ". –
Dies ist eine schöne Antwort. Ich habe zu viel Zeit mit der Fledermaus-Datei gespeichert. Und das Beste von allem ist, dass es perfekt funktioniert." – Yster