`
javaEEdevelop
  • 浏览: 876328 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

java 检查本地cer证书(转)

 
阅读更多

原址(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生成的国密cer证书

    国密算法是我国自主研发创新的一套数据加密处理系列算法,很多项目都在用了,所以用Java代码生成的基于国密算法签发的sm2 证书,放到资源里面方便大家下载使用。

    用OpenSSL把二进制的Cer证书转换程Base64格式的PEM格式的证书.docx

    CER格式:CER是DER编码的X.509证书的标准扩展名,它是二进制格式,直接存储证书信息,包括公钥、发行者、有效期等。 PEM格式:PEM格式的证书通常以`.pem`或`.crt`为扩展名,内容以“—–BEGIN CERTIFICATE—–”...

    cer 转成p12方法

    这一特性导致了当企业使用常见的由微软CA颁发的X.509 DER编码的.CER证书时,Android设备往往无法正常加载这些证书,进而影响了移动终端在企业无线网络中使用802.1x等基于用户证书的认证方式。 #### 二、证书格式与...

    cer证书生成工具

    `CER`证书是一种特定类型的证书,遵循DER编码格式,它是X.509标准下的二进制表示。本文将详细介绍“cer证书生成工具”,以及如何利用OpenSSL等工具快速生成公私钥对。 首先,我们要理解公私钥对的概念。在公钥加密...

    java代码生成数字证书

    Java代码生成数字证书涉及到几个关键概念和技术,包括Java的密钥和证书管理、RSA加密算法以及非交互式证书创建。在此,我们将深入探讨这些主题,以便理解如何在Java环境中生成和使用数字证书。 1. **数字证书**:...

    Linux环境cer证书生成和转码方式参考.doc

    在Linux环境中,安全通信往往需要使用数字证书,其中CER证书是一种常见的证书格式,它遵循X.509(v3)标准,包含了公钥信息。本文主要探讨如何在Linux下生成CER证书以及进行必要的转码操作。 首先,CER证书可以是自...

    PFX to CER(PFX批量转换成CER)

    PFX(Personal Information Exchange)和CER(Certificate Request)是两种常见的数字证书格式,它们各有特点并适用于不同的场景。本篇文章将详细解析“PFX to CER”批量转换的过程,以及相关的知识点。 首先,我们...

    java实现读取证书访问https接口

    本篇文章将深入探讨如何在Java中实现读取不同格式(如cer、der、crt)的证书,以及如何使用这些证书访问HTTPS接口并获取返回数据。 首先,我们需要了解证书的基本概念。证书通常包含了公钥和一些身份信息,由受信任...

    CryptoAPI实现的Pfx,Cer证书生成程序C++

    本项目涉及的是使用C++编程语言调用Windows操作系统内置的CryptoAPI(加密应用程序接口)来创建自签名的数字证书,其中包括Pfx(P12)和Cer两种类型。下面将详细阐述相关知识点: 1. **CryptoAPI**:CryptoAPI是...

    SSL中各证书的转换

    `.cer`文件通常用于存储公钥证书,而`.jks`(Java Keystore)文件则是Java平台中用于存储密钥对和信任证书的标准格式。转换过程涉及使用`keytool`命令行工具,该工具是JDK的一部分。 #### 操作步骤 - 首先,确保...

    FiddlerRoot.cer证书

    FiddlerRoot.cer 证书

    Microsoft Root Certificate Authority 2010 2011.cer证书

    Microsoft Root Certificate Authority 2010 2011.cer证书是微软的一个安装证书,可能很多人都遇到过visual studio 2013和2015安装时提示“安装包丢失或损坏”的问题,其实就是缺少了证书的原因,只需要安装...

    SSL中各种证书转换

    cer证书转换:cer转jks,jks转cer,cer转pem,导入证书库命令。

    cer证书制作(makecert.exe)自己做的UI

    可以基本实现cer制作,pvk私钥导出,生效/失效时间等功能.把此程序复制到makecert.exe的目录下运行就行了. 易语言制作,安全无毒,无良杀软误报请添加信任. 闲得没事可以打开这个软件的属性-数字签名,用自己做的证书签的...

    Java从文件中读取数字证书.rar

    Java生成 数字证书源码,从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂,获取证书,请查看以下相关代码:  //生成文件输入流,输入文件为c:/mycert.cer  ...

    CFCA证书环境Java安装

    CFCA证书环境的Java安装是确保Java应用能够识别并信任CFCA签发的数字证书的关键步骤。下面将详细介绍如何进行这一过程。 首先,你需要了解CFCA证书的基本概念。CFCA是一家权威的数字证书颁发机构,其SSL证书用于...

    VeriSign Universal Root Certification Authority.cer证书

    此证书安装以后添加到信任区,用于解决Windows 7 平台上安装Adobe系列软件出现The installation cannot continue as the installer file may be damaged. Download the installer file again.详细参见:...

    cer二进制,base64及证书链解析api和头文件

    CER文件可能包含证书的完整链,包括根证书、中间证书和最终的终端实体证书。 Base64是一种常见的编码方法,用于将二进制数据转换为ASCII文本,以便在不支持二进制传输的环境中(如电子邮件)进行传输。在证书场景中...

    java获取数字证书信息

    这段代码首先检查请求中是否包含证书,然后获取第一个证书并打印出其主题名称和详细信息。这对于进行证书验证或基于证书的身份验证非常有用。 总之,本文介绍了如何使用Java和相关工具(如TOMCAT、JDK、OpenSSL)来...

Global site tag (gtag.js) - Google Analytics