Попытка использовать смарт-карту для аутентификации в Tomcat - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть рабочая конфигурация SSL для моего сервера Tomcat в моем файле server.xml:

<Connector port="58443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="150" SSLEnabled="true" scheme="https" compression="2048" clientAuth="false"
    sslProtocol="TLSv1.2" URIEncoding="UTF-8" sslEnabledProtocols="TLSv1.2"
    keystoreFile="conf/keystore" keystorePass="changeit"
    ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
    maxSwallowSize="0"/>

Я хочу требовать использования смарт-карты для доступа к серверу.Я нашел Включить сервер Tomcat для аутентификации с помощью смарт-карты и попытался адаптировать инструкции к моей ситуации.Я использовал Windows certmgr для получения сертификатов для своей смарт-карты и установил их в свой файл хранилища ключей:

keytool -importcert -file 'My SecureBadge Basic G2.cer' -keystore ./keystore -alias rootca
keytool -importcert -file 'My Hardware Root CA.cer' -keystore ./keystore -alias serverca

В моем хранилище ключей теперь содержатся следующие 3 записи:

rootca, Feb 18, 2019, trustedCertEntry,
Certificate fingerprint (SHA1): 2D:70:FE:85:F9:C6:7F:E8:13:9A:73:A9:A1:2D:32:24:1A:EC:EC:5B
serverca, Feb 18, 2019, trustedCertEntry,
Certificate fingerprint (SHA1): 5B:E5:34:32:FB:2B:50:1E:FB:DE:CD:E9:C7:55:1F:08:2B:5D:5D:C6
mysslcert, Jan 16, 2019, PrivateKeyEntry,
Certificate fingerprint (SHA1): 2A:B4:24:7D:2F:E1:E4:E3:E0:7C:90:00:87:88:91:DD:15:39:EC:D8

Затем я добавилвторой разъем для тестирования:

<Connector port="59443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="150" SSLEnabled="true" scheme="https" compression="2048" clientAuth="true"
    secure="true" SSLVerifyClient="require" SSLEngine="on"
    sslProtocol="TLSv1.2" URIEncoding="UTF-8" sslEnabledProtocols="TLSv1.2"
    keystoreFile="conf/keystore" keystorePass="changeit"
    truststoreFile="conf/keystore" truststorePass="changeit"
    ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
    maxSwallowSize="0"/>

Когда я пытаюсь подключиться, я получаю всплывающее окно:

Please enter the master password for the Oberthur ID One v7PIV PIV pro...

Я не знаю этот пароль.Попытка ввода PIN-кода не работает.Есть идеи?Мне интересно, нужно ли мне больше рассказать Tomcat о моем корневом CA.

1 Ответ

0 голосов
/ 05 марта 2019

В основном я работал над тем, чтобы разделить хранилище ключей на две части.Фактическое хранилище ключей теперь содержит только сертификат SSL, другое называется piv-truststore и содержит только сертификаты смарт-карт.Кажется, это работает.Я получаю ту же подсказку «ввести мастер-пароль», но теперь он принимает мой PIN-код (если и только если моя смарт-карта вставлена ​​в считывающее устройство).

<Connector port="59443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="150" SSLEnabled="true" scheme="https" compression="2048" clientAuth="true"
    secure="true" SSLVerifyClient="require" SSLEngine="on" 
    sslProtocol="TLSv1.2" URIEncoding="UTF-8" sslEnabledProtocols="TLSv1.2"
    keystoreFile="conf/keystore" keystorePass="changeit"
    truststoreFile="conf/piv-truststore" truststorePass="changeit"
    ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
    maxSwallowSize="0"/>

Есть еще одна проблема, которая заключается в том, чтоМне по-прежнему предлагается войти в систему с помощью пароля.Я подозреваю, что мне нужно настроить специальную область или что-то, что завершит аутентификацию AD.

[Обновление] Три месяца спустя я добился большого прогресса.Я нашел класс Java, который позволяет мне использовать смарт-карту и вернуться к форме.https://github.com/samwyse/SSLWithFORMFallback8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...