1 回答

TA贡献1850条经验 获得超11个赞
实际上 SNIMatcher 仅适用于服务器端。这可以通过在 matches() 方法的返回上放置一个断点来验证。执行永远不会在该断点处停止。
跳过主机名验证的实际原因是,当覆盖 SSLParameters 时,新的 params.identificationAlgorithm 值为 null 而不是“HTTPS”。
这是一个更简单的代码,它和上面的一样有效。
HttpClient.create().secure(sslContextSpec -> sslContextSpec
.sslContext(sslContext)
.handlerConfigurator(sslHandler -> {
SSLEngine engine = handler.engine();
SSLParameters params = new SSLParameters(engine.getSSLParameters().getCipherSuites(), engine.getSSLParameters().getProtocols());
// With java update null value is no longer sufficient to skip host name verification
params.setEndpointIdentificationAlgorithm("");
engine.setSSLParameters(params);
}));
添加回答
举报