PKI证书格式及转换

PKI证书格式及转换

2013年10月29日

17:47

PKCS 全称是 Public-Key Cryptography
Standards ,是由RSA
实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。 常用的有:

PKCS#7 Cryptographic MessageSyntax
Standard

PKCS#10 Certification
RequestStandard

PKCS#12 Personal InformationExchange Syntax
Standard

X.509是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure
(PKI) 制定的
ITU-T X509 国际标准。

PKCS#7 常用的后缀是: .P7B .P7C .SPC

PKCS#12 常用的后缀有: .P12 .PFX

X.509 DER 编码(ASCII)的后缀是:.DER
.CER .CRT

X.509 PAM 编码(Base64)的后缀是:.PEM
.CER .CRT

.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。

.pem跟crt/cer的区别是它以Ascii来表示。

pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式

p10是证书请求

p7r是CA对证书请求的回复,只用于导入

p7b以树状展示证书链(certificate
chain),同时也支持单个证书,不含私钥。


用openssl创建CA证书的RSA密钥(PEM格式):

openssl genrsa -des3 -outca.key
2048

二用openssl创建CA证书(PEM格式,假如有效期为一年):

openssl req -new -utf8 -x509 -days 365 -key ca.key -out ca.crt

openssl是可以生成DER格式的CA证书的,最好用IE将PEM格式的CA证书转换成DER格式的CA证书。


x509到pfx

openssl
pkcs12 -export 
-inkey ca.key –in ca.crt -out ca.pfx

注意-inkey和-in两个选项的顺序


PEM格式的ca.key转换为Microsoft可以识别的pvk格式。

pvk -in ca.key -out ca.pvk-nocrypt
-topvk


PKCS#12 到
PEM的转换

openssl pkcs12 -nocerts -nodes-in cert.p12 -out
private.pem

验证
openssl pkcs12 -clcerts -nokeys -in cert.p12 -outcert.pem


从 PFX 格式文件中提取私钥格式文件 (.key)

openssl pkcs12 -in mycert.pfx-nocerts -nodes
-out mycert.key


转换
pem 到到
spc

openssl crl2pkcs7 -nocrl-certfile
venus.pem  -outform DER -out venus.spc


-outform -inform 指定DER 还是 PAM 格式。例如:

openssl x509 -in Cert.pem -informPEM -out
cert.der -outform DER


PEM 到
PKCS#12 的转换,

openssl pkcs12 -export -inCert.pem -out
Cert.p12 -inkey key.pem

密钥库文件格式【Keystore】

格式    
:  JKS

扩展名  :
.jks/.ks

描述     :
【JavaKeystore】密钥库的Java实现版本,provider为SUN

特点    
:  密钥库和私钥用不同的密码进行保护

格式    
:  JCEKS

扩展名  : 
.jce

描述    
: 【JCEKeystore】密钥库的JCE实现版本,provider为SUN
JCE

特点    
:  相对于JKS安全级别更高,保护Keystore私钥时采用TripleDES

格式    
:  PKCS12

扩展名  : 
.p12/.pfx

描述    
: 【PKCS#12】个人信息交换语法标准

特点    
:  1、包含私钥、公钥及其证书

2、密钥库和私钥用相同密码进行保护

格式    
:  BKS

扩展名  : .bks

描述    
:  Bouncycastle Keystore】密钥库的BC实现版本,provider为BC

特点    
:  基于JCE实现

格式     :
UBER

扩展名  : .ubr

描述     :
【BouncycastleUBER
Keystore】密钥库的BC更安全实现版本,provider为BC

证书文件格式【Certificate】

格式          : DER

扩展名       : .cer/.crt/.rsa

描述          :【ASN
.1 DER】用于存放证书

特点          : 不含私钥、二进制

格式          : PKCS7

扩展名       :.p7b/.p7r

描述          :【PKCS
#7】加密信息语法标准

特点          :1、p7b以树状展示证书链,不含私钥

2、p7r为CA对证书请求签名的回复,只能用于导入

格式          : CMS

扩展名       : .p7c/.p7m/.p7s

描述          :【Cryptographic
Message Syntax】

特点          :1、p7c只保存证书

2、p7m:signature
withenveloped data

3、p7s:时间戳签名文件

格式          : PEM

扩展名       :
.pem

描述          :【Printable
Encoded Message】

特点         :
1、该编码格式在RFC1421中定义,其实PEM是【Privacy-Enhanced
Mail】的简写,但他也同样广泛运用于密钥管理

2、ASCII文件

3、一般基于base
64编码

格式         : PKCS10

扩展名      : .p10/.csr

描述        
: 【PKCS
#10】公钥加密标准【Certificate Signing
Request】

特点        : 
1、证书签名请求文件

2、ASCII文件

3、CA签名后以p7r文件回复

格式        : 
SPC

扩展名     
: .pvk/.spc

描述        
: 【Software
Publishing Certificate】

特点        : 
微软公司特有的双证书文件格式,经常用于代码签名,其中

1、pvk用于保存私钥

2、spc用于保存公钥

来自
<http://blog.csdn.net/hansel/article/details/4447631>

openssl中有如下后缀名的文件

.key格式:私有的密钥

.crt格式:证书文件,certificate的缩写

.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate
signing request的缩写

.crl格式:证书吊销列表,Certificate
Revocation List的缩写

.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

常用证书协议

x509v3:IETF的证书标准

x.500:目录的标准

SCEP:  简单证书申请协议,用http来进行申请,数据有PKCS#7封装,数据其实格式也是PKCS#10的

PKCS#7:  是封装数据的标准,可以放置证书和一些请求信息

PKCS#10:  用于离线证书申请的证书申请的数据格式,注意数据包是使用PKCS#7封装这个数据

PKCS#12:  用于一个单一文件中交换公共和私有对象,就是公钥,私钥和证书,这些信息进行打包,加密放在存储目录中,CISCO放在NVRAM中,用户可以导出,以防证书服务器挂掉可以进行相应恢复。思科是.p12,微软是.pfx

来自
<http://wujunfeng.blog.51cto.com/3041/804693>

# 建立 CA
目录结构

mkdir
-p./demoCA/{private,newcerts}

touch./demoCA/index.txt

echo 01
>./demoCA/serial

# 生成 CA 的
RSA 密钥对

openssl
genrsa -des3-out ./demoCA/private/cakey.pem 2048

# 生成 CA
证书请求

openssl
req -new-days 365 -key ./demoCA/private/cakey.pem -out careq.pem

# 自签发 CA
证书

openssl ca
-selfsign-in careq.pem -out ./demoCA/cacert.pem

#
以上两步可以合二为一

openssl
req -new-x509 -days 365 -key ./demoCA/private/cakey.pem -out
./demoCA/cacert.pem

# 生成用户的
RSA 密钥对

openssl
genrsa -des3-out userkey.pem

#
生成用户证书请求

openssl
req -new-days 365 -key userkey.pem -out userreq.pem

# 使用 CA
签发用户证书

openssl ca
-inuserreq.pem -out usercert.pem

来自
<http://rhythm-zju.blog.163.com/blog/static/310042008015115718637/>

来自为知笔记(Wiz)

PKI证书格式及转换,码迷,mamicode.com

时间: 2024-10-02 17:35:22

PKI证书格式及转换的相关文章

常见证书格式和转换

PKCS全称是 Public-Key Cryptography Standards ,是由 RSA实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准. 常用的有:PKCS#7 Cryptographic Message Syntax StandardPKCS#10 Certification Request StandardPKCS#12 Personal Information Exchange SyntaxStandard X.509是常见

常用证书格式怎样转换教程

[合信ssl证书(https://ssl.51mubanji.com/) 第一步:安装转换所需的运行环境 转换证书需要使用本地拥有 OpenSSL 和 JDK 运行环境,如果没有可以参考 < OpenSSL 安装教程 > 和 < Java 安装教程 > 第二步:合并证书链 完整的证书拥有四个部分 根证书中级证书域名证书证书私钥如果您是部署在 Apache 容器上,我们需要域名证书文件.证书链文件文件. 我们需要按照 中级证书 – 中级证书 的顺序合并为证书链. 如果您是部署在非 A

(备忘)openssl的证书格式转换

PKCS 全称是Public-KeyCryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过15 个标准. 常用的有:PKCS#7 Cryptographic Message Syntax StandardPKCS#10 Certification Request StandardPKCS#12 Personal Information Exchange Syntax StandardX.509是常见通

openssl的证书格式转换

证书转换 PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准. 常用的有:PKCS#7 Cryptographic Message Syntax StandardPKCS#10 Certification Request StandardPKCS#12 Personal Information Exchange Syntax StandardX

2020_1课程设计—基于BC的证书格式转换工具的设计与实现—Week1

2020_1课程设计-基于BC的证书格式转换工具的设计与实现-Week1 目录 2020_1课程设计-基于BC的证书格式转换工具的设计与实现-Week1 任务要求 Week1 任务安排 实践过程 学习证书格式的相关知识 学习OpenSSL的使用方法 安装OpenSSL 使用OpenSSL查看证书,并实现证书格式转换 创建根证书CA 颁发证书 证书格式转换 遇到问题 参考链接 任务要求 清楚.pem .pfx /.keystore .crt .cer .der 这些格式的文件用openssl如何产

常用的证书格式转换

1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopenssl rsa -in server.pem -out server.key openssl x509 -in server.pem -out server.crtPEM格式的证书与DER格式的证书的转换openssl x509 -in cert.pem -inform PEM -out cert.d

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

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

常见证书格式及相互转换

PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准. 常用的有:PKCS#7 Cryptographic Message Syntax StandardPKCS#10 Certification Request StandardPKCS#12 Personal Information Exchange Syntax Standard X.509

SqlServer将日期格式DateTime转换成varchar类型

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100),