获取服务端https证书 - Java版
2018-07-11 11:09
309 查看
接上篇,用java代码实现一下获取远程服务端证书,还是拿新浪首页测试,上代码:
package org.test; import java.net.URL; import java.security.MessageDigest; import java.security.cert.Certificate; import java.security.cert.X509Certificate; import javax.net.ssl.HttpsURLConnection; public class Application { public static void main(String[] args) throws Exception { URL url = new URL("https://www.sina.com.cn"); HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.connect(); Certificate[] certs = conn.getServerCertificates(); //会拿到完整的证书链 X509Certificate cert = (X509Certificate)certs[0]; //cert[0]是证书链的最下层 System.out.println("序号:" + cert.getSerialNumber()); System.out.println("颁发给:" + cert.getSubjectDN().getName()); System.out.println("颁发者:" + cert.getIssuerDN().getName()); System.out.println("起始:" + cert.getNotBefore()); System.out.println("过期:" + cert.getNotAfter()); System.out.println("算法:" + cert.getSigAlgName()); System.out.println("指纹:" + getThumbPrint(cert)); conn.disconnect(); } private static String getThumbPrint(X509Certificate cert) throws Exception { MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] der = cert.getEncoded(); md.update(der); byte[] digest = md.digest(); return bytesToHexString(digest); } private static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } }
运行看效果,得到的输出:
序号:78653003708979598891221754220386804014 颁发给:CN=sina.com, OU="Sina.com Technology(China)Co.,ltd", O="Sina.com Technology(China)Co.,ltd", L=Beijing, ST=Beijing, C=CN 颁发者:CN=GeoTrust SSL CA - G3, O=GeoTrust Inc., C=US 起始:Tue Feb 21 08:00:00 CST 2017 过期:Tue Nov 26 07:59:59 CST 2019 算法:SHA256withRSA 指纹:6ce7b869e4d6f77a31a967af2dc1b904fd059aa3
与之前是一样的。
相关文章推荐
- 获取服务端https证书 - Java版
- 获取服务端https证书
- 获取服务端https证书
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- java 获取https 网站内容(不需要导入证书)
- java绕过证书验证访问https
- 如何把Https网站中的安全证书导入到java中的cacerts证书库?
- Java爬虫(七)- httpClient进阶: https 和 证书认证(讲故事篇)
- Java学习笔记28:keyStroe https证书
- java ssl https 连接详解 生成证书
- java https tomcat 单双认证(含证书生成和代码实现) 原创转载请备注,谢谢O(∩_∩)O
- java net https获取302跳转后地址
- Java Json解析,Java Web Json解析,Java Web服务端获取Json数据,客户端通过HTTP获取Json数据
- java进阶(九)------图片跨域显示---服务端获取图片显示在jsp中
- 何把Https网站中的安全证书导入到java中的cacerts证书库?
- java httpclient 无证书访问 https
- java发送http和https请求(忽略证书)
- Java中创建访问HTTPS的自签名证书的方法
- Java 服务端 使用WebService 模拟客户端从第三个平台获取数据
- java ssl https 连接详解 生成证书