100分求大神指点如何用JAVA检测出untrusted ssl cetificate

shenshengzhiwen12 2015-01-27 12:41:53
在登录网站的时候如果证书是不可信的话浏览器会弹出一个警告页面,如何用JAVA检测出untrusted ssl cetificate?浏览器有个检查功能如下图:
我想用JAVA该如何实现?最好能举个能用的例子
...全文
226 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenshengzhiwen 2015-01-28
  • 打赏
  • 举报
回复
天神八将怎么还不降临呢..在线等急求会这个的大神
淡定的峰哥 2015-01-28
  • 打赏
  • 举报
回复
不明白,是你自己生成的证书吗 看这个文档是否能帮助你 http://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/
shenshengzhiwen12 2015-01-28
  • 打赏
  • 举报
回复
引用 11 楼 wangxf_8341 的回复:
这个是站点证书即公钥证书,不被信任的证书并不是证书有问题,而是证书不是被受信任的根证书机构或中级证书机构颁发的,就像12306.cn就是不被信任的证书,这个警告是浏览器自己报的, 受信任的根证书机构或中级证书机构的列表是存在于浏览器里面的,如果你用java实现,第一先获得证书,一般.cer结尾,第二获得那个列表,第三把证书的信息取出来比较一下,现在就是第一步比较难
final List<X509Certificate> certificateList = new ArrayList<X509Certificate>(); SSLContextBuilder builder = SSLContexts.custom(); builder.loadTrustMaterial(null, new TrustStrategy() { @Override public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { for (X509Certificate certificate : chain) { certificateList.add(certificate); } return true; } }); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build(), SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER); 是的,加入我本地自签名的就是不受信任的,我现在想用JAVA来判断这个证书是否是受信任的。 红色地方就可以获得证书,紫色是验证URL对应的主机是否合法,现在就是怎么获取列表呢?取出来了之后如何比较呢?
淡定的峰哥 2015-01-28
  • 打赏
  • 举报
回复
这个是站点证书即公钥证书,不被信任的证书并不是证书有问题,而是证书不是被受信任的根证书机构或中级证书机构颁发的,就像12306.cn就是不被信任的证书,这个警告是浏览器自己报的, 受信任的根证书机构或中级证书机构的列表是存在于浏览器里面的,如果你用java实现,第一先获得证书,一般.cer结尾,第二获得那个列表,第三把证书的信息取出来比较一下,现在就是第一步比较难
shenshengzhiwen12 2015-01-28
  • 打赏
  • 举报
回复
自己继续顶。。。。。。。。。。。。
shenshengzhiwen12 2015-01-27
  • 打赏
  • 举报
回复
引用 6 楼 shenshengzhiwen12 的回复:
第一验证日期是否过期,第二验证subject name是否和Host name一致,第三验证那个trustStore是否有这个证书的公钥,但客户端是没办法得到这个服务端的trustStore。我的思路是否对呢?
应该是SSL certificate,所以用X.500
shenshengzhiwen12 2015-01-27
  • 打赏
  • 举报
回复
这个问题有人会吗?
shenshengzhiwen12 2015-01-27
  • 打赏
  • 举报
回复
第一验证日期是否过期,第二验证subject name是否和Host name一致,第三验证那个trustStore是否有这个证书的公钥,但客户端是没办法得到这个服务端的trustStore。我的思路是否对呢?
liangtu 2015-01-27
  • 打赏
  • 举报
回复
引用 3 楼 shenshengzhiwen12 的回复:
[quote=引用 2 楼 liangtu33 的回复:] 可以用js来判断,不同证书代码不同。
能更深入的介绍一下吗?加入我给你一个URL,我该如何通过JS去验证?[/quote] 证书说明文档里应该有。
砖家的谎言 2015-01-27
  • 打赏
  • 举报
回复
楼上说的对,js确实可以判断,网上应该有很多这样的案例
shenshengzhiwen12 2015-01-27
  • 打赏
  • 举报
回复
引用 2 楼 liangtu33 的回复:
可以用js来判断,不同证书代码不同。
能更深入的介绍一下吗?加入我给你一个URL,我该如何通过JS去验证?
liangtu 2015-01-27
  • 打赏
  • 举报
回复
可以用js来判断,不同证书代码不同。
shenshengzhiwen12 2015-01-27
  • 打赏
  • 举报
回复
有人知道怎么做吗?

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧