是否可以在信任库中使用 root-ca 证书配置 WildFly 13 客户端证书身份验证?客户端将使用此根签名的证书。
以下是让我想知道的:在本文档中,他们 https://ctomc.github.io/docs-playground/WildFly_Elytron_Security.html 说:
IMPORTANT: The decoded principal * MUST* must be the alias value you set in your server’s truststore for the client’s certificate.
这意味着我可以配置解码器以映射 CN 以外的属性,这将指向我的信任库中的 root-ca 别名,并且所有客户端证书都将此属性指向 root-ca 别名。
但是,问题是,服务器如何知道哪个用户映射到此证书,因为它将此"其他"属性映射到信任库中的同一证书?
我认为您正在尝试实现的目标自 https://issues.jboss.org/browse/ELY-1418 年以来是可能的,这意味着从 WF14 开始。
从 ELY-1418 开始,您不必将用户证书保留在密钥库领域。
无论您使用CLIENT_CERT机制还是您自己的自定义机制,其工作的关键是
- 不要在 elytron/server-ssl-context 中配置安全域。
- 在您的 elytron/安全域中,使用域(如 LDAP 域或任何其他域(来提供授权。不要在 elytron/安全域中使用以下聚合域: (aggregate-realm name="CustomRealm" authentication-realm="keystorebackedRealm" authorization-realm="..."(
- 如果使用CLIENT_CERT机制,请按照此处记录的步骤操作 http://docs.wildfly.org/15/WildFly_Elytron_Security.html。但是上面的文档中有一个错误。创建/subsystem=elytron/configurable-http-server-mechanism-factory=configured-cert:add(http-server-mechanism-factory=global, properties={org.wildfly.security.http.skip-certificate-verification=true}( 后,您需要在 elytron/http-authentication-factory 中引用它。创建 elytron/http-authentication-factory 的命令是正确的,但示例输出仍然引用全局工厂。
- 如果使用自定义机制,请确保跳过身份验证检查,因为这已由 SSL 握手完成。