证书名词解释说明
名词 |
含义 |
X.509 |
一种通用的证书格式,包含证书持有人的公钥,加密算法等信息 |
PKCS1~PKCS12 |
公钥加密(非对称加密)的一种标准(Public key cryptography Standards),一般存储为*.pn,*p12是包含证书和密钥的封装格式 |
*.der |
证书的二进制存储格式(不常用) |
*.pem |
证书或密钥的Base64文本存储格式,可以单独存放证书或密钥,也可以同时存放证书或密钥 |
*.key |
单独存放的pem格式的密钥,一般保存为*.key |
*.cer *.crt |
俩个指的都是证书,linuc下叫crt,windows下叫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