问题描述
我们有一项服务,其中客户端需要使用客户端证书通过双向 TLS 进行身份验证。我们的想法是我们的客户可以为他们的客户注册他们自己的 CA。
根据RFC 5246,服务器可能会发送一个已接受 CA 的列表(目前是这种情况):
certificate_authorities
可接受的可分辨名称 [X501] 列表 certificate_authorities,以 DER 编码格式表示。这些 专有名称可以指定所需的专有名称 根 CA 或从属 CA;因此,此消息可用于 描述已知的根以及所需的授权空间。如果 certificate_authorities 列表为空,那么客户端可以 发送适当的 ClientCertificateType 的任何证书, 除非有一些相反的外部安排。
问题是我们不希望通过在每次 TLS 握手时发送 CA 列表来泄露所有客户。
问题是,如何配置 Java SSLEngine
使其不发送已接受 CA 的 DN。我们目前设置了 SSLEngine.setNeedClientAuth(true)
。我们还没有尝试过仅设置 setWantClientAuth(true) ,但这将使客户端身份验证成为可选。所以问题是如何抑制 SSLEngine 发送接受的客户端 CA DN。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)