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

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

PKCS7 常用的后缀是: .P7B .P7C .SPC
PKCS12 常用的后缀有: .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),同时也支持单个证书,不含私钥。

1. 生成私钥 Generate the private key

请使用以下命令来生成私钥

openssl genrsa –des3 –out www.mydomain.com.key 1024

此命令将生成1024位的RSA私钥,私钥文件名为: www.mydomain.com.key,会提示您设定私钥密码,请设置密码,并牢记! 

2. 生成CSR文件 Generate the CSR

请使用以下命令来生成CSR

openssl req –new –key www.mydomain.com.key –out www.mydomain.com.csr

此命令将提示您输入X.509证书所要求的字段信息,包括国家(中国添CN)、省份、所在城市、单位名称、单位部门名称(可以不填直接回车)。请注意: 除国家缩写必须填CN外,其余都可以是英文或中文。

请输入您要申请SSL证书的域名,如果您需要为www.domain.com申请SSL证书就不能只输入domain.com。SSL证书是严格绑定域名的。

请不要输入Email、口令(challenge password)和可选的公司名称,直接打回车即可。

您现在已经成功生成了密钥对,私钥文件:www.mydomain.com.key 保存在您的服务器中, 请把CSR文件:www.mydomain.com.csr 发给WoTrust/Thawte即可,CSR文件格式如下图所示。

3. 备份私钥文件 Backup your private key

请备份您的私钥文件并记下私钥密码。最好是把私钥文件备份到软盘或光盘中。

4. 测试CSR

生成CSR后,建议您自己测试一下生成的CSR文件是否正确,


一 用openssl创建CA证书的RSA密钥(PEM格式):
openssl genrsa -des3 -out ca.key 1024

二用openssl创建CA证书(PEM格式,假如有效期为一年):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
openssl是可以生成DER格式的CA证书的,最好用IE将PEM格式的CA证书转换成DER格式的CA证书。

三 x509到pfx
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

四 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 -out cert.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 -inform PEM -out cert.der -outform DER
八 PEM 到 PKCS#12 的转换,
openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem

OpenSSL 生成合成 PFX 文件
是将Apache/OpenSSL使用的“KEY文件 + CRT文件”转换为标准的PFX文件,可以将PFX文件格式导入到微软IIS 5/6/7、微软ISA、微软Exchange Server等软件。

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt          (server.key和server.crt文件是Apache的证书文件,生成的server.pfx用于导入IIS)