Настройка Tomcat для приема сертификатов карты DOD CAC

Я запускаю приложение на отдельном сервере Tomcat 6 в Windows. Я хочу, чтобы он мог запрашивать и получать клиентские сертификаты с карт DoC 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 ответ

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

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

Другие вопросы по тегам