如何在Truststore中为根证书配置Elytron?

时间:2018-09-21 08:54:56

标签: ssl wildfly client-certificates elytron

是否可以在信任库中使用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别名的此属性。
但是,问题是,由于服务器将“其他”属性映射到信任库中的同一证书,服务器如何知道要映射到该证书的用户?

2 个答案:

答案 0 :(得分:1)

我认为自https://issues.jboss.org/browse/ELY-1418起,即自WF14起,您正在尝试实现的目标是可能的。

自ELY-1418开始,您不必将用户证书保留在密钥库领域。

答案 1 :(得分:1)

无论您使用CLIENT_CERT机制还是您自己的自定义机制,实现这一目标的关键都是

  1. 请勿在elytron / server-ssl-context中配置安全域。
  2. 在您的elytron /安全域中,使用LDAP领域或任何其他领域(例如LDAP领域)来提供授权。请勿在elytron / security-domain中使用以下聚合领域: (集合领域名称=“ CustomRealm”身份验证领域“ =” keystorebackedRealm“授权领域” ...“)
  3. 如果使用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-验证= true}),则需要在elytron / http-authentication-factory中引用它。创建elytron / http-authentication-factory的命令正确,但示例输出仍引用全局工厂。
  4. 如果您使用自定义机制,请确保跳过身份验证检查,因为这是通过ssl握手完成的。