常见的数字证书格式与格式转换

常见的数字证书格式

CER后缀的证书文件有两种编码:第一种是DER二进制编码,第二种是:ASE64编码(也就是.pem) 
p7b一般是证书链,里面包括1个到多个证书 
pfx是指以pkcs#12格式存储证书的公钥和相应私钥。

在Security编程中,有几种典型的密码交换信息文件格式: 
DER-encoded certificate: .cer, .crt 
PEM-encoded message: .pem 
PKCS#12 Personal Information Exchange: .pfx, .p12 
PKCS#10 Certification Request: .p10 
PKCS#7 cert request response: .p7r 
PKCS#7 binary message: .p7b

.cer/.crt是用于存放证书,它是二进制形式存放的,不含私钥。 
.pem跟crt/cer的区别是它以Ascii 来表示。 
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,二进制方式 
p10是证书请求 
p7r是CA对证书请求的回复,只用于导入 
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。

其中,我介绍如何从p12/pfx文件中提取密钥对及其长度: 
1、首先,读取pfx/p12文件(需要提供保护密码) 
2、通过别名(Alias,注意,所有证书中的信息项都是通过Alias来提取的)提取你想要分析的证书链 
3、再将其转换为一个以X509证书结构体 
4、提取里面的项,如果那你的证书项放在第一位(单一证书),直接读取 x509Certs[0](见下面的代码)这个X509Certificate对象 
5、
X509Certificate对象有很多方法,tain198127网友希望读取RSA密钥(公私钥)及其长度(见
http://www.matrix.org.cn/thread.shtml?topicId=43786&forumId=55&
amp;#reply),那真是太Easy了, 
X509Certificate keyPairCert = x509Certs[0]; 
int iKeySize = X509CertUtil.getCertificateKeyLength(keyPairCert); 
System.out.println("证书密钥算法="+keyPairCert.getPublicKey().getAlgorithm()); 
System.out.println("证书密钥长度="+iKeySize); 
提取了他所需要的信息。

X.509定义了两种证书:公钥证书和属性证书   
PKCS#7和PKCS#12使用的都是公钥证书   
PKCS#7的SignedData的一种退化形式可以分发公钥证书和CRL   
一个SignedData可以包含多张公钥证书   
PKCS#12可以包含公钥证书及其私钥,也可包含整个证书链

PFX文件转换为JKS文件

使用JWSDP工具包中的工具

安装J2SE 1.5,下载并运行jdk-1_5_0_09-windows-i586-p.exe 下载并安装jave web service
develop pack, jwsdp-2_0-windows-i586.exe 创建一个新的keystore文件,里面的别名取做TEMP

keytool -genkey -alias temp -keyalg RSA -keystore server.jks

准备好要导入的PFX文件,server.pfx,运行:

C:\Sun\jwsdp-2.0\xws-security\bin\pkcs12import.bat pkcs12import -file server.p12 -alias server -keystore server.jks

查看server.jks 里面的证书记录:

keytool -list -v -keystore server.jks

JKS文件转换为PFX文件

通过jks2pfx工具

请下载:JKS2PFX转换工具

将压缩包解开到 c:\jks2pfx 目录下,
运行以下命令:
JKS2PFX <导出文件名> [Java Runtime的目录]
备注:
KeyStore文件:指Tomcat保存SSL证书的文件
KeyStore密码:KeyStore文件对应的密码
Alias别名:  生成证书CSR时,所起的Alias别名
导出文件名: 准备导出的文件名称 (不要带扩展名)
Java Runtime的目录(可选): 指包含Java.exe和keytool.exe的目录,如:c:\progra~1\Java\jre1.5.0_06\bin

例如:
JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin
该命令将server.jks中别名为tomcat的SSL证书导出,运行后将产生3个文件
exportfile.key、exportfile.crt、exportfile.pfx,exportfile.pfx可以导入到微软的IIS
中,exportfile.key和exportfile.crt 可用于Apache或者OpenSSL兼容的系统。
可以用下面命令查看PFX文件内容:
openssl pkcs12 -info -in exportfile.pfx

PFX文件转换为X509证书文件和RSA密钥文件

通过Openssl命令行

openssl pkcs12 -in myssl.pfx -nodes -out server.pem

openssl rsa -in server.pem -out server.key

openssl x509 -in server.pem -out server.crt

总结:

1)P12格式的证书是不能使用keytool工具导入到keystore中的

2)The Sun‘s PKCS12 Keystore对从IE和其他的windows程序生成的pfx格式的证书支持不太好.

3)P7B证书链不能直接导入到keystore,需要将里面的证书导出成cer格式,再分别导入到keystore。

时间: 2024-10-28 20:29:59

常见的数字证书格式与格式转换的相关文章

常见的数字证书格式

cer后缀的证书文件有两种编码-->DER二进制编码或者BASE64编码(也就是.pem) p7b一般是证书链,里面包括1到多个证书 pfx是指以pkcs#12格式存储的证书和相应私钥. 在Security编程中,有几种典型的密码交换信息文件格式: DER-encoded certificate: .cer, .crt PEM-encoded message: .pem PKCS#12 Personal Information Exchange: .pfx, .p12 PKCS#10 Certi

Atitti.数字证书体系cer pfx attilax总结

一.数字证书常见标准 1 数字证书文件格式(cer和pfx)的区别: 1 二.数字证书存储内容 2 X.509是一种非常通用的证书格式. 2 详细特征 2 X.509证书格式 3 一.数字证书常见标准 数字证书体现为一个或一系列相关经过加密的数据文件.常见格式有: 符合PKI ITU-T X509标准,传统标准(.DER .PEM .CER .CRT) 符合PKCS#7 加密消息语法标准(.P7B .P7C .SPC .P7R) 符合PKCS#10 证书请求标准(.p10) 符合PKCS#12

Java 生成数字证书系列(一)了解数字证书

序 最近的工作一直围绕着数字证书,对于 CA 证书的了解还是多少有一点的,只不过没有那么深入,现在要用到这方面的东西,显然还是有点欠缺,那么从这篇开始,我就将我自己的学习.工作历程跟大家一同分享,希望对想了解 CA 证书的童鞋有所帮助吧. 很显然,这篇文章大部分都是理论介绍,后续会有相关的一些实例.不喜欢看理论的童鞋,可以直接略过此章,直接看后续的文章. 概要 这篇文章,我主要是想谈一下 CA 证书的工作原理,数字签名,证书格式等几个比较重要的概念.因为在后续的文章中,都会用到这几个概念,而且,

数字证书常见格式与协议介绍

引:http://blog.csdn.net/anxuegang/article/details/6157927 证书主要的文件类型和协议有: PEM.DER.PFX.JKS.KDB.CER.KEY.CSR.CRT.CRL .OCSP.SCEP等. PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式来存放各种信息,它是 openssl 默认采用的信息存放方式.Openssl 中的 PEM 文件一般包含如下信息: 内容类型:表明本文件存放的是什么信息内容,它的

openssl数字证书常见格式与协议介绍

证书主要的文件类型和协议有: PEM.DER.PFX.JKS.KDB.CER.KEY.CSR.CRT.CRL .OCSP.SCEP等. PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式来存放各种信息,它是 openssl 默认采用的信息存放方式.Openssl 中的 PEM 文件一般包含如下信息: 内容类型:表明本文件存放的是什么信息内容,它的形式为“——-BEGIN XXXX ——”,与结尾的“——END XXXX——”对应. 头信息:表明数据是如果被处

[转载] 创建为ClickOnce清单签名的.pfx格式数字证书

使用vs2013自动创建的.pfx数字证书默认有效期只有一年,并且“颁发者”.“颁发给”均为当前机器名和当前登陆用户名的组合,其实我们完全可以创建更友好的.pfx数字证书. 打开Microsoft .NET Framework 的SDK命令提示,按以下步骤操作: 1.创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下: makecert -r -n "CN= sndnvaps " -b 08/31/2015 -e 08/31/2030

声音文件格式、常见的数字音频格式

数字声音在计算机中存储和处理时,其数据必须以文件的形式进行组织,所选用 的文件格式必须得到操作系统和应用软件的支持.不同计算机一级应用软件中使用的声音文件格式也互不相同. 常见的数字音频格式   音频格式 说明 1 Wave(.WAV) 是微软公司开 发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持.WAV格式支持许多压缩算法,支持多种音频 位数.采样频率和声道,采用44.1kHz的采样频率,16位量化位数,跟CD一样,对存储空间需求太大不便

转 常见视频编码方式以及封装格式

常见视频编码方式以及封装格式 常见视频编码方式 所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式.视频流传输中最为重要的编解码标准有国际电联的H.261.H.263.H.264.H.265,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo.微软公司的WMV以及Apple公司的QuickTime等. AVI AVI 是 Audio Video I

YUV / RGB 格式及快速转换算法

1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确的满足各自的需求,就出现了各种各样的色彩空间模型来量化的描述颜色.我们比较常接触到的就包括 RGB / CMYK / YIQ / YUV / HSI等等. 对于数字电子多媒体领域来说,我们经常接触到的色彩空间的概念,主要是RGB , YUV这两种(实际上,这两种体系包含了许多种具体的颜色表达方式和模