gpt4 book ai didi

java - java客户端可以知道服务器是否请求证书吗?

转载 作者:行者123 更新时间:2023-11-30 02:10:30 24 4
gpt4 key购买 nike

在服务器端,可以指定是否要向连接的客户端发送客户端证书请求: https://docs.oracle.com/javase/7/docs/api/javax/net/ssl/SSLEngine.html#setWantClientAuth(boolean)

为了完整起见,您还可以指定在客户端不提供证书的情况下是否要继续协商: https://docs.oracle.com/javase/7/docs/api/javax/net/ssl/SSLEngine.html#setNeedClientAuth(boolean)

<小时/>

我的具体问题是:给定一个用java编写的客户端应用程序,是否有可能以某种方式知道服务器在协商期间是否请求客户端证书(即您的应用程序连接到的服务器是使用setWantClientAuth(true)配置的)?

最佳答案

您可以安装一个 KeyManager,它除了委托(delegate)给默认值外什么都不做,并在调用时设置一个标志。

或者,如果您在握手后直接使用 SSLSocketSSLEngine,您可以检查 .getSession().getLocalCertificates()/getLocalPrincipal().感谢@dave_thompson_085。

关于java - java客户端可以知道服务器是否请求证书吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50262540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com