2012-06-14 3 views
3

Это мой первый вопрос в этом форуме, пожалуйста, примите мои извинения за любую ошибку заранее. У меня проблема с настройкой tomcat с SSL и APR.tomcat ssl apr x509

Контекст: tomcat 7, Java 7, OpenSSL, пара действительных сертификатов x509.

Мой разъем https:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" 
      SSLVerifyClient="require" SSLVerifyDepth="3" 
      SSLCertificateFile="${catalina.home}/security/server.pem" 
      SSLCertificateKeyFile="${catalina.home}/security/server.key" 
      SSLCertificateChainFile="${catalina.home}/security/trust.pem" 
      SSLCACertificateFile="${catalina.home}/security/trust_ca.pem" 
      /> 

ИПК дерево:

ROOT -> CA_intermediate -> CA4Servers -> server (tomcat) 
             -> serv2Cert 
         -> CA4People -> people1Cert 

окна ПК-клиент с 2-мя сертификатами в окна хранилища ключей (Windows-MY): people1Cert и serv2Cert

trust.pem Включает ROOT, CA_int ermediate, CA4Servers и общедоступный ключ с кодовым замком tomcat. trust_ca.pem все trust.pem, но tomcat cert.

Что я хочу: Перейти к https://tomcat.server:8443/, браузер представляет мне диалог выбора сертификата с одним сертификатом: serv2Cert, я выбираю его и попасть в веб-страницы успешно. Если я выберу другой сертификат, сервер представит мне страницу с ошибкой.

Моя проблема: Когда я получаю диалоговое окно сертификата функцией выбора, я вижу 2: (сертификаты?) Serv2Cert и people1Cert. Оба они позволили мне перейти на веб-страницу! Если изменить SSLVerifyDepth или trust_ca.pem ограничить клиентские сертификаты только serv2Cert, я получаю SSL ошибку как неизвестно са или неизвестного сертификат

Я уже пытался с некоторыми значениями SSLVerifyDepth как 1,2, 3,4. Только «3» позволяет мне войти в сервер. Если я удалю все сертификаты CA из trust_ca.pem, но ROOT, позвольте мне войти в систему с обоими сертификатами клиентов (people1Cert и serv2Cert).

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

ответ

2

Вы не можете сделать это с помощью Tomcat. Это очень негибкая информация о SSL. Обратите внимание, что вы настраиваете весь контейнер Tomcat, а не одно веб-приложение. Я рекомендую вам поставить Apache HTTP перед Tomcat, т. Е. В качестве обратного прокси. Apache HTTPD позволяет настраивать все аспекты SSL, включая приемлемые идентификаторы клиентов, вплоть до уровня отдельных каталогов.

Смежные вопросы