Настройка 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