Примечание: я отвечу на свой собственный вопрос ... просто хотел добавить этот лакомый кусочек к коллективной мудрости Интернета.
Я успешно настроил аутентификацию сертификата на своемСервер JBoss 5.1.0.GA, в основном с помощью информации на этой странице: http://docs.jboss.org/jbossas/jboss4guide/r1/html/ch8.chapter.html
У меня есть один контекст (назовем его /openContext
), который не требует никакой аутентификации, и другойконтекст (назовем его /securedContext
), который требует аутентификации сертификата клиента (т. е. он настроен на использование CLIENT-CERT в web.xml).При использовании стандартного веб-соединителя JBoss это работает великолепно.Я могу нажать http://myhost/openContext
, и у меня не запрашивается сертификат, но когда я нажимаю http://myhost/securedContext
, у меня запрашивается сертификат клиента, как и ожидалось.
Однако при установке JBossWeb Native и использование APR в качестве моего веб-коннектора, мне больше не предлагается сертификат при нажатии http://myhost/securedContext
.
Моя конфигурация коннектора APR в server.xml
выглядит следующим образом:
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
SSLProtocol="SSLv3+TLSv1"
SSLCipherSuite="ALL:!ADH:!SSLv2:!EXPORT40:!EXP:!LOW"
SSLRandomSeed="/dev/urandom"
SSLCertificateFile="/etc/pki/tls/certs/mycert.crt"
SSLCertificateKeyFile="/etc/pki/tls/private/mycert.key"
SSLPassword="mypasswordwhichiassureyouisbetterthanthisone"
SSLCACertificateFile="/etc/pki/tls/certs/clientCAs.crt"
/>
Я также попытался добавить параметр SSLVerifyClient
в эту конфигурацию и установить для него значение optional
, но при этом запрашивается сертификат как в /openContext
, так и в /securedContext
, что не являетсяповедение, которое я хочу.
Как заставить JBoss с APR требовать аутентификацию сертификата для одного веб-контекста, но не для другого веб-контекста?