如何解决互 TLS 不泄露 Java 11 中接受的客户端证书 CA
我们有一项服务,其中客户端需要使用客户端证书通过双向 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 举报,一经查实,本站将立刻删除。