栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java客户端中接受服务器的自签名ssl证书

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java客户端中接受服务器的自签名ssl证书

这里基本上有两个选择:将自签名证书添加到JVM信任库中,或将客户端配置为

选项1
从浏览器导出证书,并将其导入到JVM信任库中(以建立信任链):

<JAVA_HOME>binkeytool -import -v -trustcacerts-alias server-alias -file server.cer-keystore cacerts.jks -keypass changeit-storepass changeit 

选项2
禁用证书验证:

// Create a trust manager that does not validate certificate chainsTrustManager[] 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) {        }    } }; // Install the all-trusting trust managertry {    SSLContext sc = SSLContext.getInstance("SSL");     sc.init(null, trustAllCerts, new java.security.SecureRandom());     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());} catch (GeneralSecurityException e) {} // Now you can access an https URL without having the certificate in the truststoretry {     URL url = new URL("https://hostname/index.html"); } catch (MalformedURLException e) {} 

请注意,我完全不建议使用选项2。禁用信任管理器会破坏SSL的某些部分,并使您容易受到中间攻击的攻击。首选选项1,或者甚至更好,让服务器使用由知名CA签名的“真实”证书。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号