java - 如何绕过 SSL 握手 javax.net.ssl.SSLHandshakeException
问题描述
我收到异常 javax.net.ssl.SSLHandshakeException。我已经阅读了你可以在编码级别绕过这个。这是我一直在尝试做的。我已将 NoopHostnameVerifier.INSTANCE 和 SSLContext 添加到客户端构建器,但仍然收到 SSL 异常。
var clientBuilder = HttpClientBuilder.create()
.setDefaultRequestConfig(RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build())
.setRedirectStrategy(new LaxRedirectStrategy())
.setDefaultCookieStore(cookieStore)
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.setSSLContext(createSSLContext());
private SSLContext createSSLContext() {
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
} };
SSLContext sc = null;
try {
sc = SSLContext.getInstance ("SSL");
sc.init (null, trustAllCerts, new java.security.SecureRandom ());
} catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace ();
}
return sc;
}
解决方案
推荐阅读
- sql-server - 如何使用 VBA 将 Excel 中的范围加载到 MSSQL
- python - Django 的@property 有什么作用?
- mql4 - 我的智能交易系统不起作用。问题出在我认为的 if 块上
- templates - puppet - ruby 模板 - 来自生成的接口名称的 IP 地址
- flutter - Flutter 中的 MultiMap
- python - 如何在 hstacking 后将 ndarray 切片,回到原始片段
- reactjs - 反应 useCallback 而不是 useEffect 动画
- python - “DevToolsActivePort 文件不存在错误”,而我尝试处理 chrome 扩展问题
- css - 部署时字体未加载
- c++ - 如何在 /art/runtime/oat_file_assistant.cc 中导入 OpenSSL moudle?