2010-10-14 75 views
9

我在Windows機器上的獨立tomcat 6服務器上運行應用程序。我希望它能夠請求和接收來自國防部CAC卡的客戶端證書。配置Tomcat以接受DOD CAC卡證書

我有一臺運行IE的客戶端機器,設置正確,以通過來自CAC卡的證書,我知道它是正確的,因爲當我去CAC啓用站點時,IE會彈出一個窗口,要求我選擇證書並在那個窗口我看到了我的CAC卡上的證書。

我有tomcat配置爲從用戶請求證書,當我導航到我在tomcat上運行的站點時,我看到相同的IE提示要求我選擇我的證書,但是當我在查看我的站點時,證書列表是空的。

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

,我想我搞砸了的地方是在密鑰存儲文件的生成:在我的server.xml文件中,我喜歡如下配置我的連接器。現在,我使用的是java生成它keytool命令是這樣的:

的keytool -genkey -alias -keypass MYPASSWORD -keystore myKeystore -storepass MYPASSWORD

我現在做的發展和我在尋找一種將CAC卡上的客戶證書發送給我的應用程序的方式,但我錯過了一些東西。我不太熟悉這是如何工作的,所以我可以使用一些幫助/指導。

感謝

+0

什麼是你現在的證書做什麼?我假設你想把它們變成用戶名? – Rob 2011-10-20 23:03:03

回答

10

後有點發拉這裏是我發現了什麼。 IE提示要求我選擇我的證書爲空的原因是因爲客戶端證書(CAC卡上的證書)不是由我的tomcat服務器上受信任根中的任何CA頒發的。

我需要做的是將根CA證書添加到我的Tomcat信任庫。我花了一段時間才弄清楚如何獲得證書。我所做的是去http://dodpki.c3pki.chamb.disa.mil/rootca.html網站下載根證書(即.cac文件),然後將這些文件導入IE(工具 - > Inernet選項 - >內容 - >證書)。然後,再從IE瀏覽器證書工具)我導出的根證書作爲X509文件並創建了信任存儲包含他們:

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

一旦那家商店創建我更新server.xml文件中的連接器元件包括信任存儲:

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

這樣做,並重新啓動Tomcat的後CAC卡證書顯示爲我