OPENSSL证书之间相互转换

证书名词解释说明

名词

含义

X.509

一种通用的证书格式,包含证书持有人的公钥,加密算法等信息

PKCS1~PKCS12

公钥加密(非对称加密)的一种标准(Public key cryptography Standards,一般存储为*.pn*p12是包含证书和密钥的封装格式

*.der

证书的二进制存储格式(不常用)

*.pem

证书或密钥的Base64文本存储格式,可以单独存放证书或密钥,也可以同时存放证书或密钥

*.key

单独存放的pem格式的密钥,一般保存为*.key

*.cer  *.crt

俩个指的都是证书,linuc下叫crtwindows下叫cer,存储格式可以是pem,也可以是der

*.csr

证书前面请求(Certificate signing  request,包含证书持有人的信息,国家,邮件,域名等信息

*.pfx

微软IIS的实现

*.jks

Java keytool实现的证书格式

1、证书的格式可以相互转换,OPENSSL 先 生成私钥,然后在生产证书签名请求,最后通过私钥和证书前面请求生成公钥。

2、创建证书签名请求(Certificate signing request )和私钥(primary key):

Openssl req -newkey  rsa:2048 -nodes -out test.csr -keyout test.key

3、创建公钥(public key

Openssl  x509 -req -days 365 -in test.csr -signkey test.key -out test.crt

4、生成*.p12文件,生成的时候需要指定密码

openssl pkcs12 -export -in your_crt.crt -inkey your_key.key -out your_p12.p12
openssl pkcs12 -export -in your_cer.cer -inkey your_key.key -out your_p12.p12

5、再生成keystore文件

keytool -importkeystore -v -srckeystore your_p12.p12 -srcstoretype pkcs12 -srcstorepass  你设置的密码 -destkeystore your_keystore.keystore -deststoretype jks -deststorepass 你设置的密码

6、pfx转换cer,crt,key

7、导出私钥必须输入密码

openssl pkcs12 -in test.wosign.pfx -nodes -out test.pem

8、去除pem证书密码,转换成rsa格式,如果使用DSA格式,只需将rsa替换成dsa

openssl rsa -in test.pem -out test.key
openssl x509 -in test.pem -out test.crt(cer)

10、使用.jks转为.pfx

openssl pkcs12 -export -in client1.crt -inkey client1.key -out client1.pfx

11、使用.pfx转换.jks

JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin (转换后文件存放在相应目录下。)

12、创建PFX格式证书(pkcs12 )

openssl pkcs12 -export -in my.cer -inkey my.key -out mycert.pfx

13、证书编码格式转换

#PEM to DER
openssl x509 -in cert.crt -outform der -out cert.der
#DER to PEM
openssl x509 -in cert.crt -inform der -outform pem -out cert.pem


生成服务器端私钥
openssl genrsa -des3 -out server.key 2048
 
生成服务器端公钥
openssl rsa -in server.key -pubout -out server.pem
 
生成客户端私钥
openssl genrsa -des3 -out client.key 2048
 
生成客户端公钥
openssl rsa -in client.key -pubout -out client.pem
 
 
生成 CA 私钥
openssl genrsa -des3 -out ca.key 2048
 
生成证书请求
# X.509 Certificate Signing Request (CSR) Management.
openssl req -new -key ca.key -out ca.csr
 
使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式
 
# X.509 Certificate Data Management.
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt -outform pem  -days 3650
#-outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成
#-days 3650 指10年有效
#也可以
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
 
服务端向CA生成证书请求
# 服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件
openssl req -new -key server.key -out server.csr
# 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
生成cer文件
#使用openssl 进行转换
openssl x509 -in server.crt -out server.cer -outform der




猜你喜欢

转载自blog.51cto.com/11728495/2512708
今日推荐