Java如何跳过SSL 证书验证
时间: 2023-08-22 18:08:20 浏览: 212
在Java中可以通过设置SSLContext来实现跳过SSL证书验证。具体步骤如下:
1.创建一个TrustManager,用于信任所有证书,代码如下:
```
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
```
2.创建一个SSLContext,并将TrustManager设置为信任所有证书,代码如下:
```
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
```
3.将SSLContext设置到HttpsURLConnection或HttpClient中,代码如下:
```
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
```
或
```
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLContext(sc)
.build();
```
这样就可以跳过SSL证书验证了。但是需要注意的是,这种方法会降低安全性,因此在生产环境中不建议使用。
阅读全文