Настройка Tomcat для приема сертификатов карты DOD CAC - PullRequest
10 голосов
/ 14 октября 2010

Я запускаю приложение на отдельном сервере Tomcat 6 в Windows.Я хочу, чтобы он мог запрашивать и получать клиентские сертификаты с карт DoD CAC.

У меня есть клиентский компьютер, на котором запущен IE, который правильно настроен для передачи сертификатов с карты CAC, я знаю, что это правильно, потому что, когда я захожу на сайт с включенным CAC, IE выскакивает окно с просьбой выбрать сертификати в этом окне я вижу сертификаты с моей карты CAC.

У меня есть tomcat, настроенный на запрос сертификатов от пользователя, и когда я перехожу на свой сайт, работающий на tomcat, я вижу то же самое приглашение IE, предлагающее мне выбрать мойсертификат, однако, когда я смотрю на моем сайте, список сертификатов пуст.В моем файле server.xml я настроил свой коннектор следующим образом:

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

Место, где, как мне кажется, я облажался, - это создание файла хранилища ключей.Сейчас я сгенерировал его с помощью команды java keytool примерно так:

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

Я сейчас занимаюсь разработкой, и яЯ ищу способ получить клиентские сертификаты с карты CAC для моего приложения, но я что-то упустил.Я не очень знаком с тем, как это работает, поэтому я мог бы использовать некоторую помощь / руководство.

Спасибо

1 Ответ

11 голосов
/ 14 октября 2010

После небольшого выдергивания волос вот что я узнал.Причина, по которой IE запросил мне выбрать свой сертификат, была пустой, потому что клиентские сертификаты (сертификаты на карте CAC) не были выданы никакими центрами сертификации в доверенном корне на моем сервере Tomcat.

Что мне было нужнодля этого нужно было добавить корневые сертификаты 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

После создания этого хранилища я обновляю элемент Connector в файле server.xml.файл для включения этого хранилища доверия:

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

После этого и перезапуска tomcat сертификаты карты CAC показались для меня

...