首页 > 编程语言 >java 判断 https证书到期

java 判断 https证书到期

时间:2023-12-24 10:04:55浏览次数:44  
标签:X509Certificate java https 证书 过期 URL HTTPS 客户端

Java 判断 HTTPS 证书到期

概述

在Java中,我们可以使用SSLContext和HttpsURLConnection来判断HTTPS证书是否过期。本文将介绍整个流程,并提供相应代码和注释。

流程图

下面是整个判断HTTPS证书到期的流程图:

sequenceDiagram
    participant 客户端
    participant 服务器
    客户端->>服务器: 发起HTTPS请求
    服务器->>客户端: 返回HTTPS响应
    客户端->>客户端: 解析响应中的证书
    客户端-->>服务器: 获取证书过期时间
    服务器-->>客户端: 返回证书过期时间
    客户端->>客户端: 判断证书是否过期

步骤

下面是判断HTTPS证书到期的具体步骤:

步骤 代码 解释
1. 发起HTTPS请求 URL url = new URL(" connection = (HttpsURLConnection) url.openConnection(); 创建一个URL对象,并打开一个HTTPS连接
2. 解析响应中的证书 Certificate[] certificates = connection.getServerCertificates(); 从连接中获取服务器证书
3. 获取证书过期时间 X509Certificate x509Certificate = (X509Certificate) certificates[0];<br>Date expirationDate = x509Certificate.getNotAfter(); 将证书强制转换为X509Certificate类型,并获取证书的过期时间
4. 判断证书是否过期 Date currentDate = new Date();<br>if (expirationDate.before(currentDate)) {<br> System.out.println("证书已过期");<br>} else {<br> System.out.println("证书未过期");<br>} 将当前日期与证书的过期时间进行比较,判断证书是否已经过期

代码

下面是完整的代码示例:

import java.net.URL;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import javax.net.ssl.HttpsURLConnection;

public class Main {
    public static void main(String[] args) throws Exception {
        URL url = new URL("
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        
        Certificate[] certificates = connection.getServerCertificates();
        X509Certificate x509Certificate = (X509Certificate) certificates[0];
        Date expirationDate = x509Certificate.getNotAfter();
        
        Date currentDate = new Date();
        if (expirationDate.before(currentDate)) {
            System.out.println("证书已过期");
        } else {
            System.out.println("证书未过期");
        }
    }
}

以上代码会打印出证书是否过期的结果。

结论

通过以上步骤,我们可以判断一个HTTPS证书是否已经过期。在实际开发中,我们可以将这个逻辑封装成一个工具类,供其他地方调用。

pie
    title HTTPS证书状态
    "已过期" : 30
    "未过期" : 70

根据上述饼状图,我们可以看到大部分HTTPS证书都是未过期的。

希望本文对你的问题有所帮助!

标签:X509Certificate,java,https,证书,过期,URL,HTTPS,客户端
From: https://blog.51cto.com/u_16213317/8949330

相关文章

  • Java涉及模式有几种,以及什么时候使用
    Java涉及的设计模式一共有23种,按照功能分为三类:创建型模式:包括工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式。当需要对对象的创建进行更好的抽象和封装时,可以考虑使用创建型模式。比如,当系统中的对象创建过程较为复杂,希望封装这些复杂的创建过程,或者需要对对象的创......
  • JAVA 同城外卖跑腿团购到店跑腿多合一系统源码的好处和优势?
    随着互联网的普及和科技的飞速发展,JAVA作为一种高效、可靠的开发语言,已经被广泛应用于各种领域。在同城服务领域,JAVA开发的同城外卖跑腿团购到店跑腿多合一系统源码具有诸多优势和好处。本文将详细介绍这些优势和好处,帮助读者更好地了解该系统的价值。一、提高效率JAVA同城外卖跑腿......
  • JAVA同城服务同城外卖跑腿团购到店系统源码的开发优势
    随着互联网的快速发展和普及,越来越多的传统行业开始与互联网进行融合,以提升业务效率和用户体验。同城服务行业也不例外,通过开发同城服务同城外卖跑腿团购到店系统源码,可以满足用户多样化的需求,提升服务效率和质量,增强市场竞争力。本文将以JAVA为开发语言,介绍同城服务同城外卖跑腿团......
  • JAVA 同城服务家政服务系统源码的运营方案?
    随着社会的发展和生活水平的提高,人们对家庭服务的需求也日益增加。为了满足这一需求,开发一款基于JAVA的家政服务系统源码具有重要意义。本文将介绍该系统的运营方案,包括市场分析、目标市场定位、竞争优势、营销策略、客户服务等方面。一、市场分析当前家政服务市场存在诸多问题,如服......
  • JAVA同城外卖跑腿团购到店跑腿多合一系统都有哪些功能?
    随着移动互联网的迅速发展和普及,同城外卖跑腿团购到店跑腿多合一系统越来越受到用户的青睐。这种系统通过集成了多种服务功能,包括外卖点餐、跑腿代购、团购活动以及到店服务等,使用户能够更加方便快捷地满足自己的需求。本文将以JAVA为开发语言,详细介绍同城外卖跑腿团购到店跑腿多合......
  • JAVA开发同城外卖跑腿团购到店跑腿多合一系统源码有哪些功能?
    随着互联网的普及和快速发展,传统行业与互联网的结合已经成为一种趋势。同城外卖跑腿团购到店跑腿多合一系统就是这种趋势下的产物。该系统通过JAVA开发,集成了外卖点餐、跑腿代购、团购活动以及到店服务等多项功能,为用户提供了便捷、高效的服务体验。本文将详细解析JAVA开发同城外卖......
  • 【Java 进阶篇】Jedis 操作 Hash:Redis中的散列类型
    在Redis中,Hash是一种存储键值对的数据结构,它适用于存储对象的多个属性。Jedis作为Java开发者与Redis交互的工具,提供了丰富的API来操作Hash类型。本文将深入介绍Jedis如何操作Redis中的Hash类型数据,通过生动的代码示例和详细的解释,助你轻松掌握Jedis中Hash的各种操作。Jedis中Hash的......
  • java接口自动化系列(06):常用变量解析到map
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15867903.html添加工具类常用变量解析到map,方便后面解析初始化sql或者入参的时候对变量进行替换。VariableUtil.javapackagecom.qzcsbj.autotest.utils;importcom.qzcsbj.autotest.entity.Variable;import......
  • java基础语法api之键盘录入Scanner对象
    一:概述Scanner再开发中比较常使用,它可以实现键盘录入,让用户输入信息。实现简单的交互。在这里对其进行详细的介绍。二:具体介绍首先这个Scanner类在java.util包下的,在每次使用之前都需要进行导包。<1>JDK_API帮助文档对其的定义<2>在基础阶段,常用的成员方法<2>数据求和的案例import......
  • #yyds干货盘点#Java面试题
    前言今天主题是悲观锁和乐观锁,很常见的话题了,但是记录一下吧!每个人想法不一样,讲的多少也会不一样,大家随便听听就好,有问题欢迎评论,我是个知错就改的好孩子。今天就来简单了解一下使用场景接下来我们了解一下两种锁的使用场景,其实两种锁各有优缺点,所以合适的场合用适合的锁,像乐观锁适......