验证https证书过期时间

public void httpsUrl(String httpsurl) throws Exception {
 URL url = new URL(httpsurl);
 HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
 connection.connect();
 for (Certificate certificate : connection.getServerCertificates()) {
 //第一个就是服务器本身证书,后续的是证书链上的其他证书
 X509Certificate x509Certificate = (X509Certificate) certificate;
 //过期时间配置
 long day = (x509Certificate.getNotAfter().getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24;
 if (day <= 30) {
 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);
 SimpleDateFormat sdfss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 /*
 System.out.println(x509Certificate.getSubjectDN());
 System.out.println(sdfss.format(sdf.parse(x509Certificate.getNotBefore() + "")));//有效期开始时间
 System.out.println(sdfss.format(sdf.parse(x509Certificate.getNotAfter() + "")));//有效期结束时间
 */
 //发送钉钉通知
 dingding(DINGDING_TOKEN, "域名:" + url + "\n证书还有" + day + "天过期\n到期时间:" + sdfss.format(sdf.parse(x509Certificate.getNotAfter() + "")));
 }
 }
 connection.disconnect();
 }

你可能感兴趣的:(http)