注意:我将回答我自己的问题......只是想将此花絮添加到互联网的集体智慧中。
我已经在我的 JBoss 5.1.0.GA 服务器上成功配置了证书身份验证,主要是借助此页面上的信息:http://docs.jboss.org/jbossas/jboss4guide/r1/html/ch8.chapter 。 html
我有一个/openContext
不需要任何身份验证的上下文(我们称之为它/securedContext
)和另一个需要客户端证书身份验证的上下文(我们称之为它)(即,它被配置为在 web.xml 中使用 CLIENT-CERT)。当使用 JBoss 的默认 Web 连接器时,这非常有效。我可以点击http://myhost/openContext
,但不会提示我输入证书,但是当我点击 时http://myhost/securedContext
,会提示我输入客户端证书,正如我所期望的那样。
但是,当我安装JBossWeb Native并使用 APR 作为我的 Web 连接器时,当我点击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
,这不是我想要的行为。
如何让带有 APR 的 JBoss 要求对一个 Web 上下文而不是另一个 Web 上下文进行证书身份验证?