OpenSSL生成证书
2016-11-01 00:00
337 查看
摘要: rsa证书的生成及各种格式之间的转换
该命令会生成1024位的私钥,生成成功的界面如下:
此时我们就可以在当前路径下看到rsa_private_key.pem文件了。
得到生成功的结果,这个结果就是PKCS8格式的私钥,如下图:
得到生成成功的结果,如下图:
此时,我们可以看到一个文件名为rsa_public_key.pem的文件,打开它,可以看到-----BEGIN PUBLIC KEY-----开头,
-----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥。
2. 生成证书请求文件
注意:这一步会提示输入国家、省份、mail等信息,可以根据实际情况填写,或者全部不用填写,直接全部敲回车.
3. 生成证书
4. 生成供iOS使用的公钥文件
5. 生成供iOS使用的私钥文件
注意:这一步会提示给私钥文件设置密码,直接输入想要设置密码即可,然后敲回车,然后再验证刚才设置的密码,再次输入密码,然后敲回车,完毕!
在解密时,
6. 生成供Java使用的公钥
7. 生成供Java使用的私钥
全部执行成功后,会生成如下文件,其中
-- IOS端使用证书生成开始
req -new -key han_test_private_key.pem -out han_test_private_key.csr
x509 -req -days 3650 -in han_test_private_key.csr -signkey han_test_private_key.pem -out han_test_private_key.crt
x509 -outform der -in han_test_private_key.crt -out han_test_ios_public_key.der
-- IOS端使用证书生成结束
pkcs8 -topk8 -inform PEM -in han_test_private_key.pem -outform PEM –nocrypt -out han_test_pkcs8_private_key.pem
rsa -in han_test_private_key.pem -pubout -out han_test_public_key.pem
set OPENSSL_CONF=openssl.cnf
openssl pkcs12 -in my.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
PEM格式的证书与DER格式的证书的转换
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
openssl x509 -in ca.cer -inform DER -out ca.pem -outform PEM
几种典型的密码交换信息文件格式:
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是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥
算法
base64不是加密算法,但也是SSL经常使用的一种算法,它是编码方式,用来把asc码和二进制码转来转去的。
openssl x509部分命令
打印出证书的内容:
openssl x509 -in cert.pem -noout -text
打印出证书的系列号
openssl x509 -in cert.pem -noout -serial
打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject
以RFC2253规定的格式打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
在支持UTF8的终端一行过打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb
打印出证书的MD5特征参数
openssl x509 -in cert.pem -noout -fingerprint
打印出证书的SHA特征参数
openssl x509 -sha1 -in cert.pem -noout -fingerprint
把PEM格式的证书转化成DER格式
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
把一个证书转化成CSR
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
给一个CSR进行处理,颁发字签名证书,增加CA扩展项
openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca -signkey key.pem -out cacert.pem
给一个CSR签名,增加用户证书扩展项
openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr -CA cacert.pem -CAkey key.pem -CAcreateserial
一、生成RSA证书密钥对
1)生成RSA私钥:
genrsa -out rsa_private_key.pem 1024该命令会生成1024位的私钥,生成成功的界面如下:
此时我们就可以在当前路径下看到rsa_private_key.pem文件了。
2)把RSA私钥转换成PKCS8格式
输入命令pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt,并回车得到生成功的结果,这个结果就是PKCS8格式的私钥,如下图:
3) 生成RSA公钥
输入命令rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,并回车,得到生成成功的结果,如下图:
此时,我们可以看到一个文件名为rsa_public_key.pem的文件,打开它,可以看到-----BEGIN PUBLIC KEY-----开头,
-----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥。
二、生成IOS端及JAVA端使用的RSA证书
1)生成RSA私钥:
genrsa -out rsa_private_key.pem 10242. 生成证书请求文件rsaCertReq.csr
openssl req -new -key private_key.pem -out rsaCerReq.csr
注意:这一步会提示输入国家、省份、mail等信息,可以根据实际情况填写,或者全部不用填写,直接全部敲回车.
3. 生成证书rsaCert.crt
,并设置有效时间为10年
openssl x509 -req -days 3650 -in rsaCerReq.csr -signkey private_key.pem -out rsaCert.crt
4. 生成供iOS使用的公钥文件public_key.der
openssl x509 -outform der -in rsaCert.crt -out public_key.der
5. 生成供iOS使用的私钥文件private_key.p12
openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt
注意:这一步会提示给私钥文件设置密码,直接输入想要设置密码即可,然后敲回车,然后再验证刚才设置的密码,再次输入密码,然后敲回车,完毕!
在解密时,
private_key.p12文件需要和这里设置的密码配合使用,因此需要牢记此密码.
6. 生成供Java使用的公钥rsa_public_key.pem
openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout
7. 生成供Java使用的私钥pkcs8_private_key.pem
openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt 或者: openssl pkcs8 -topk8 -inform PEM -in han_test_private_key.pem -outform PEM –nocrypt -out han_test_pkcs8_private_key.pem
全部执行成功后,会生成如下文件,其中
public_key.der和
private_key.p12就是iOS需要用到的文件
三、综合步骤
genrsa -out han_test_private_key.pem 1024-- IOS端使用证书生成开始
req -new -key han_test_private_key.pem -out han_test_private_key.csr
x509 -req -days 3650 -in han_test_private_key.csr -signkey han_test_private_key.pem -out han_test_private_key.crt
x509 -outform der -in han_test_private_key.crt -out han_test_ios_public_key.der
-- IOS端使用证书生成结束
pkcs8 -topk8 -inform PEM -in han_test_private_key.pem -outform PEM –nocrypt -out han_test_pkcs8_private_key.pem
rsa -in han_test_private_key.pem -pubout -out han_test_public_key.pem
常用的证书格式转换
1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnf
openssl pkcs12 -in my.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
PEM格式的证书与DER格式的证书的转换
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
openssl x509 -in ca.cer -inform DER -out ca.pem -outform PEM
几种典型的密码交换信息文件格式:
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是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥
算法
base64不是加密算法,但也是SSL经常使用的一种算法,它是编码方式,用来把asc码和二进制码转来转去的。
openssl x509部分命令
打印出证书的内容:
openssl x509 -in cert.pem -noout -text
打印出证书的系列号
openssl x509 -in cert.pem -noout -serial
打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject
以RFC2253规定的格式打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
在支持UTF8的终端一行过打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb
打印出证书的MD5特征参数
openssl x509 -in cert.pem -noout -fingerprint
打印出证书的SHA特征参数
openssl x509 -sha1 -in cert.pem -noout -fingerprint
把PEM格式的证书转化成DER格式
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
把一个证书转化成CSR
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
给一个CSR进行处理,颁发字签名证书,增加CA扩展项
openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca -signkey key.pem -out cacert.pem
给一个CSR签名,增加用户证书扩展项
openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr -CA cacert.pem -CAkey key.pem -CAcreateserial
相关文章推荐
- openssl相关指令及生成私有证书
- Mosquito使用SSL/TLS进行安全通信时的使用方法 ------生成和发布证书openssl
- openssl生成https证书
- OpenSSL生成正确显示中文证书的方法
- 随笔 - openssl证书的生成和使用
- windows下使用openssl生成证书
- 使用 openssl 生成证书
- openssl简单知识,命令行生成相关证书和密钥
- 如何用openssl命令行生成证书
- 使用OpenSSL生成证书
- OpenSSL生成根证书CA及签发子证书
- 安全通信系统--OpenSSL的安装编译、证书生成
- 利用OpenSSL生成证书详细过程
- 使用OpenSSL生成证书-nginx
- 用openssl命令生成证书
- 利用keytool/Openssl来生成服务端和客户端证书,根证书。
- CentOS通过OpenSSL生成自签名证书
- 使用OpenSSL生成证书
- openssl生成证书,公私钥的方法
- 证书介绍及openssl生成证书和吊销列表