JBoss 服务器上的客户端身份验证

Client authentication on JBoss server

我正尝试在 JBoss 上为我的应用程序 运行 配置客户端身份验证。预期结果是应用程序向用户请求证书,如果提供了受信任的证书,他将能够使用应用程序。

我已经生成了证书并将一个添加到 trustore (JBoss.keystore) 并且还配置了 standalone.xml 文件如下:

<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enable-lookups="false" secure="true">
                <ssl name="ssl" key-alias="ssl alias" password="password" certificate-key-file="..\standalone\configuration\JBoss.keystore" protocol="TLSv1.2" verify-client="true"/>
                <virtual-server name="my-host" />
</connector>

我认为设置安全 属性 true 会成功,但浏览器不要求用户证书,但立即 returns 错误 ERR_BAD_SSL_CLIENT_AUTH_CERT。如果需要,浏览器配置为每次都要求提供证书。

如何将服务器配置更改为预期行为?

我找到了答案。解决方案是将签署客户端证书的 CA 证书导入信任库,而不是导入客户端证书本身。 导入 CA 证书后,将显示每个由 CA 签名并导入浏览器的证书以供选择。