原址(http://blog.sina.com.cn/s/blog_4bea2fb101000a65.html);
import java.io.FileInputStream;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateFactory;
import java.security.cert.CertificateNotYetValidException;
import java.security.cert.X509Certificate;
import java.util.Calendar;
import java.util.Date;
public class CheckCertValid {
public static void main(String args[]) throws Exception {
// 获取X509Certificate的对象
// 从命令行中读入需要验证的证书文件
CertificateFactory of = CertificateFactory.getInstance("x.509");
FileInputStream in = new FileInputStream("D:/tomcat.cer");
java.security.cert.Certificate ceof = of.generateCertificate(in);
System.out.println(ceof.getPublicKey().getEncoded() + "\t"
+ ceof.getEncoded());
in.close();
X509Certificate t = (X509Certificate) ceof;
// 获取日期
// 验证证书在某个日期是否有效,从命令行读入年月日,由此生成Date()对象。有Date类的很多设置年月日的方法已经不提倡使用,因此改用Calendar类,Calendar类也是一个工厂类,通过getInstance()方法获得对象,然后使用set()方法设置时间,最后通过其getTime()方法获得Date()对象由于Calendar类的set()方法参数是整数,因此对命令行参数读入的年月日字符串使用Integer.parseInt()方法转换为整数。由于Calendar类的set()方法设置月份时从0开始,0代表1月,11代表12月,因此命令读入的月份要减去1
Calendar cld = Calendar.getInstance();
int year = Integer.parseInt("2012");
int month = Integer.parseInt("9");
int day = Integer.parseInt("24");
cld.set(year, month, day);
Date d = cld.getTime();
System.out.println(d);
try {
// 检验证书
t.checkValidity(d);
System.out.print("OK");
}
// 处理CertificateExpiredException异常
// 若证书在指定日期已经过期,则产生CertificateExpiredException异常,在cath语句中作相关处理
catch (CertificateExpiredException e) {
System.out.println("expired");
System.out.println(e.getMessage());
}
// 处理CertificateNorYetValidException异常
// 若证书在指定日期尚未生效,则产生CertificateNorYetValidException异常,在cath语句中作相关处理
catch (CertificateNotYetValidException e) {
System.out.println("Too early");
System.out.println(e.getMessage());
}
}
}
分享到:
相关推荐
国密算法是我国自主研发创新的一套数据加密处理系列算法,很多项目都在用了,所以用Java代码生成的基于国密算法签发的sm2 证书,放到资源里面方便大家下载使用。
CER格式:CER是DER编码的X.509证书的标准扩展名,它是二进制格式,直接存储证书信息,包括公钥、发行者、有效期等。 PEM格式:PEM格式的证书通常以`.pem`或`.crt`为扩展名,内容以“—–BEGIN CERTIFICATE—–”...
这一特性导致了当企业使用常见的由微软CA颁发的X.509 DER编码的.CER证书时,Android设备往往无法正常加载这些证书,进而影响了移动终端在企业无线网络中使用802.1x等基于用户证书的认证方式。 #### 二、证书格式与...
`CER`证书是一种特定类型的证书,遵循DER编码格式,它是X.509标准下的二进制表示。本文将详细介绍“cer证书生成工具”,以及如何利用OpenSSL等工具快速生成公私钥对。 首先,我们要理解公私钥对的概念。在公钥加密...
Java代码生成数字证书涉及到几个关键概念和技术,包括Java的密钥和证书管理、RSA加密算法以及非交互式证书创建。在此,我们将深入探讨这些主题,以便理解如何在Java环境中生成和使用数字证书。 1. **数字证书**:...
在Linux环境中,安全通信往往需要使用数字证书,其中CER证书是一种常见的证书格式,它遵循X.509(v3)标准,包含了公钥信息。本文主要探讨如何在Linux下生成CER证书以及进行必要的转码操作。 首先,CER证书可以是自...
PFX(Personal Information Exchange)和CER(Certificate Request)是两种常见的数字证书格式,它们各有特点并适用于不同的场景。本篇文章将详细解析“PFX to CER”批量转换的过程,以及相关的知识点。 首先,我们...
本篇文章将深入探讨如何在Java中实现读取不同格式(如cer、der、crt)的证书,以及如何使用这些证书访问HTTPS接口并获取返回数据。 首先,我们需要了解证书的基本概念。证书通常包含了公钥和一些身份信息,由受信任...
本项目涉及的是使用C++编程语言调用Windows操作系统内置的CryptoAPI(加密应用程序接口)来创建自签名的数字证书,其中包括Pfx(P12)和Cer两种类型。下面将详细阐述相关知识点: 1. **CryptoAPI**:CryptoAPI是...
`.cer`文件通常用于存储公钥证书,而`.jks`(Java Keystore)文件则是Java平台中用于存储密钥对和信任证书的标准格式。转换过程涉及使用`keytool`命令行工具,该工具是JDK的一部分。 #### 操作步骤 - 首先,确保...
FiddlerRoot.cer 证书
Microsoft Root Certificate Authority 2010 2011.cer证书是微软的一个安装证书,可能很多人都遇到过visual studio 2013和2015安装时提示“安装包丢失或损坏”的问题,其实就是缺少了证书的原因,只需要安装...
cer证书转换:cer转jks,jks转cer,cer转pem,导入证书库命令。
可以基本实现cer制作,pvk私钥导出,生效/失效时间等功能.把此程序复制到makecert.exe的目录下运行就行了. 易语言制作,安全无毒,无良杀软误报请添加信任. 闲得没事可以打开这个软件的属性-数字签名,用自己做的证书签的...
Java生成 数字证书源码,从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂,获取证书,请查看以下相关代码: //生成文件输入流,输入文件为c:/mycert.cer ...
CFCA证书环境的Java安装是确保Java应用能够识别并信任CFCA签发的数字证书的关键步骤。下面将详细介绍如何进行这一过程。 首先,你需要了解CFCA证书的基本概念。CFCA是一家权威的数字证书颁发机构,其SSL证书用于...
此证书安装以后添加到信任区,用于解决Windows 7 平台上安装Adobe系列软件出现The installation cannot continue as the installer file may be damaged. Download the installer file again.详细参见:...
CER文件可能包含证书的完整链,包括根证书、中间证书和最终的终端实体证书。 Base64是一种常见的编码方法,用于将二进制数据转换为ASCII文本,以便在不支持二进制传输的环境中(如电子邮件)进行传输。在证书场景中...
这段代码首先检查请求中是否包含证书,然后获取第一个证书并打印出其主题名称和详细信息。这对于进行证书验证或基于证书的身份验证非常有用。 总之,本文介绍了如何使用Java和相关工具(如TOMCAT、JDK、OpenSSL)来...