博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
https域名强弱校验的区别
阅读量:6590 次
发布时间:2019-06-24

本文共 1567 字,大约阅读时间需要 5 分钟。

HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){      public boolean verify(String hostname,SSLSession ssls) {              return true;          }  });

以上是域名若校验,如果当前https已经添加了本地证书实现了证书校验,那么域名可以作为一个弱校验也是没有问题的。

但是如果证书不想在app中保留,给https设置了信任所有证书,那么就需要设置域名的强校验来保证https访问目标的准确性,可以本地预埋域名,然后解析跟目标服务器连接缓存SSLSession中的peerhost和cn字段的域名,能够保证目标的准确性。  

 

  ssls是从服务器拿到的ssl证书相关(具体待验证)   

  hostname是访问的url的域名

  https默认验证不通过时,可以自己重写这个方法,如果返回true,表示强制信任此证书,就是通常的弱信任。如果需要自己做操作,可以从ssls里面拿到服务器返回的证书数据,同自己请求的域名、证书签证的域名、证书接收的url的域名做对比,匹配规则需要自己确认。这个域名也有可能是ip,具体看情况而定

 

以下是域名的强校验

 

request.setHostnameVerifier(new HostnameVerifier() {			@Override			public boolean verify(String hostname, SSLSession session) {				// TODO Auto-generated method stub				try {					String peerHost = session.getPeerHost(); //服务器返回的主机名					String str_new = "";					X509Certificate[] peerCertificates = (X509Certificate[]) session							.getPeerCertificates();					for (X509Certificate certificate : peerCertificates) {						X500Principal subjectX500Principal = certificate								.getSubjectX500Principal();						String name = subjectX500Principal.getName();						String[] split = name.split(",");						for (String str : split) {							if (str.startsWith("CN")) {//证书绑定的域名或者ip								if (peerHost.equals(hostname)&&str.contains("客户端预埋的证书cn字段域名")) {									return true;								}							}						}					}				} catch (SSLPeerUnverifiedException e1) {					// TODO Auto-generated catch block					e1.printStackTrace();				}				return false;			}		});

  

转载于:https://www.cnblogs.com/fengchuxiaodai/p/5962760.html

你可能感兴趣的文章
Tomcat中的Session小结
查看>>
C/C++语言中Static的作用详述
查看>>
[Android Samples视频系列之ApiDemos] App-Activity-Recreate
查看>>
C++ WINDOWS下 wchar_t *和char * 相互转化总结篇
查看>>
LeetCode:Valid Number
查看>>
ASP开发基础
查看>>
mongodb远程连接访问
查看>>
MYSQL性能调优
查看>>
LVM自动扩容
查看>>
笔记整理4
查看>>
森林病虫防治系统 (二.1)
查看>>
延时执行和取消延时执行
查看>>
\045在字符串中输出为%
查看>>
在eclipse中如何搭建ssh框架
查看>>
idea文件折叠显示出来配置
查看>>
垃圾回收解析
查看>>
SQLSERVER中的非工作时间不得插入数据的触发器的实现
查看>>
Java异常以及继承的一些问题
查看>>
如何写出兼容大部分浏览器的CSS 代码
查看>>
asp.net 百度编辑器 UEditor 上传图片 图片上传配置 编辑器配置 网络连接错误,请检查配置后重试...
查看>>