【发布时间】:2021-12-27 14:47:53
【问题描述】:
我正在尝试调试一些 Java 11 测试代码,该代码使用 SSLServerSocket 作为服务器,使用 SSLSocket 作为回复。基本代码如下:
server.setNeedClientAuth(false);
need_Client_Auth = server.getNeedClientAuth();
assertFalse("Unexpected need client authority returned", need_Client_Auth);
server.setNeedClientAuth(true);
need_Client_Auth = server.getNeedClientAuth();
assertTrue("Unexpected need client authority returned", need_Client_Auth);
SSLClient sClient = new SSLClient(client, addr, SSLClient.START_HANDSHAKE);
sClient.start();
SSLSocket reply = (SSLSocket) (server.accept());
reply.startHandshake(); //this throws an SSLException
这里的想法是只使用 needClientAuth/wantClientAuth 并测试 startHandshake 的输出,而无需获得正确的客户端身份验证。
测试期望 SSLException 抛出“空 [服务器] 证书链”消息,但它是“空 [客户端] 证书链”。该测试来自一个完整的 Java 8 版本,据我所知,所创建的证书是正确的,并且与它们的 Java 8 对应物相同。
我只是不确定从哪里开始调试以及可能导致预期输出发生这种非常小的变化的原因。任何帮助表示赞赏!
【问题讨论】:
标签: java security debugging testing certificate