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);
}));
添加回答
舉報