2010-10-14 14 views
9

J'utilise une application sur un serveur Tomcat 6 autonome sur un boîtier Windows. Je veux qu'il soit en mesure de demander et de recevoir des certificats de client à partir de cartes DoD CAC.Configuration de Tomcat pour accepter les certificats de carte COD DOD

J'ai un ordinateur client exécutant IE qui a configuré correctement pour transmettre les certificats d'une carte CAC, je sais que c'est correct parce que quand je vais sur un site compatible CAC IE affiche une fenêtre me demandant de choisir un certificat et cette fenêtre je vois les certificats de ma carte CAC.

J'ai tomcat configuré pour demander des certificats de l'utilisateur et quand je navigue sur mon site fonctionnant sur tomcat je vois la même invite IE me demandant de choisir mon certificat, mais quand je regarde mon site la liste des certificats est vide. Dans mon fichier server.xml j'ai configuré mon connecteur comme suit:

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

L'endroit où je pense que je suis vissage est dans la génération du fichier de stockage de clés. En ce moment j'ai produit à l'aide de la commande java keytool quelque chose comme ceci:

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

que je fais maintenant le développement et je suis à la recherche un moyen d'obtenir les certificats clients de la carte CAC à mon application, mais il me manque quelque chose. Je ne suis pas très familier avec comment cela fonctionne donc je pourrais utiliser de l'aide/des conseils.

Merci

+0

que faites-vous maintenant avec les certificats? Je suppose que vous voulez les transformer en noms d'utilisateur d'une manière ou d'une autre? – Rob

Répondre

10

Après un peu de cheveux tirant ici est ce que je l'ai découvert. La raison pour laquelle l'invite IE me demandant de choisir mon certificat était vide était parce que les certificats client (certificats sur la carte CAC) n'étaient émis par aucune autorité de certification de la racine approuvée sur mon serveur Tomcat.

Ce que je devais faire était d'ajouter les certificats CA racine à mon fichier de clés certifiées Tomcat. Il m'a fallu un certain temps pour comprendre comment obtenir les certificats. Ce que j'ai fait était d'aller sur le site web http://dodpki.c3pki.chamb.disa.mil/rootca.html et de télécharger les certificats racines (les fichiers come .cac) puis les importer dans IE (Tools-> Inernet Options-> Content-> Certificates). Puis, encore une fois de l'outil de certificat IE) J'ai exporté les certs de racine sous forme de fichiers X509 et créé un magasin de confiance pour les contenir:

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

Une fois que ce magasin a été créé mettre à jour l'élément de connecteur dans le fichier server.xml inclure ce magasin de confiance:

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

Après avoir fait cela et redémarrer tomcat les certificats de carte CAC a montré pour moi