2010-10-14 7 views
9

Ich verwende eine Anwendung auf einem eigenständigen Tomcat 6-Server in einer Windows-Box. Ich will, dass es Client-Zertifikate von DoD-CAC-Karten anfordern und empfangen kann.Konfigurieren von Tomcat zum Akzeptieren von DOD CAC-Kartenzertifikaten

Ich habe eine Client-Maschine mit IE, die korrekt eingerichtet ist, um die Zertifikate von einer CAC-Karte zu übergeben, ich weiß, dass es korrekt ist, wenn ich auf eine CAC-fähige Website IE ein Fenster öffnet, fragt mich, ein Zertifikat zu wählen In diesem Fenster sehe ich die Zertifikate von meiner CAC-Karte.

Ich habe tomcat konfiguriert, um certs vom Benutzer anzufordern, und wenn ich zu meiner Seite laufe, die auf Tomcat läuft, sehe ich die gleiche IE Eingabeaufforderung, die mich bittet, mein Zertifikat zu wählen, aber wenn ich meine Seite die Liste der Zertifikate ansehe ist leer. In meiner Datei server.xml habe ich meinen Anschluss konfiguriert wie folgt:

<Connector port="8443" 
      protocol="HTTP/1.1" 
      SSLEnabled="true" 
      maxThreads="150" 
      scheme="https" 
      secure="true" 
      keystoreFile="<myKeysotre>" 
      keystorePass="<myPassword>" 
      clientAuth="want" 
      sslProtocol="TLS" /> 

Ort, wo ich glaube, ich bin Einschrauben der Erzeugung der Schlüsselspeicherdatei nach oben. Im Moment habe ich es erzeugt die Java mit Keytool-Befehl etwas wie folgt aus:

keytool -genkey -alias -keypass myPassword -keystore myKeystore -storepass myPassword

Ich mache Entwicklung jetzt, und ich bin auf der Suche nach eine Möglichkeit, den Client von der CAC-Karte zu meiner Bewerbung zu bekommen, aber mir fehlt etwas. Ich bin nicht sehr vertraut mit dem, wie das funktioniert, also könnte ich Hilfe/Anleitung gebrauchen.

Dank

+0

Was sind Sie jetzt mit den Zertifikaten zu tun? Ich nehme an, Sie möchten sie irgendwie in Benutzernamen umwandeln? – Rob

Antwort

10

Nach ein wenig Haar hier ziehen ist, was ich herausgefunden habe. Der Grund dafür, dass der IE mich auffordert, mein Zertifikat zu wählen, war leer, weil die Client-Zertifikate (Zertifikate auf der CAC-Karte) nicht von CAs im vertrauenswürdigen Root auf meinem Tomcat-Server ausgestellt wurden.

Was ich tun musste, war das Hinzufügen der Stamm-CA-Zertifikate zu meinem Tomcat Truststore. Es dauerte eine Weile, bis ich herausgefunden hatte, wie ich die Zertifikate bekommen konnte. Was ich getan habe, war, auf die http://dodpki.c3pki.chamb.disa.mil/rootca.html Website zu gehen und die Stammzertifikate herunterzuladen (die kommen als .cac-Dateien), dann importierte diese Datei in IE (Extras-> Internet-Optionen-> Inhalt-> Zertifikate). Dann wieder aus dem IE-Zertifikat-Tool) exportierte ich die Wurzel certs als X509-Dateien und einen Vertrauensspeicher erstellt, sie enthalten:

keytool -storepass somePassword -import -alias DoDClass3RootCA -keystore my.truststore -trustcacerts -file exports\DoDClass3RootCA.cer 

Sobald das Speicher erstellt wurde ich das Verbindungselement in der Datei server.xml aktualisieren umfassen, dass das Vertrauen Geschäft:

<Connector port="8443" 
      protocol="HTTP/1.1" 
      SSLEnabled="true" 
      maxThreads="150" 
      scheme="https" 
      secure="true" 
      truststoreFile="my.truststore" 
      truststorePass="somePassword" 
      … /> 

Danach und Neustarten tomcat tun auftauchten die CAC-Karte Zertifikate für mich