openssl学习笔记

SSL 安全套接层
TLS 安全传输层

openssl
操作:
生成RSA私钥(无加密):
openssl genrsa -out rsa_private.key 2048
生成RSA公钥:
openssl rsa -in rsa_private.key -pubout -out rsa_public.key
生成RSA私玥(使用aes256加密),其中passout代替shell进行密码输入,否则会提升输入密码:
openssl genrsa -aes256 -passout pass:111111 -out rsa_aes_private.key 2048
此时生成公钥需要提供密码,其中passout代替shell进行密码输入,否则需要提供密码:
openssl rsa -in rsa_aes_private.key -passin pass:111111 -pubout -out rsa_aes_public.key

转换命令
私钥转非加密:
openssl rsa -in rsa_aes_private.key -passin pass:111111 -out rsa_trans_private.key
私钥转加密:
openssl rsa -in rsa_private.key -aes256 -passout pass:111111 -out rsa_aes_trans_private.key
私玥PEM转DER,-inform和outform参数制定输入输出格式由der转pem同理:
openssl rsa -in rsa_private.key -outform der-out rsa_aes_private.der ???
查看私玥明细:
openssl rsa -in rsa_private.key -noout -text
查看公钥明细:
openssl rsa -pubin -in rsa_public.key -noout -text
私钥PKCS #1转PKCS#8,其中-passout指定了密码,输出的pkcs8格式密钥为加密形式,pkcs8默认采用des3 加密算法,使用-nocrypt参数可以输出无加密的pkcs8密钥:
openssl pkcs8 -topk8 -in rsa_private.key -passout pass:111111 -out pkcs8_private.key

生成 RSA 私钥和自签名证书(req是证书请求的子命令,-newkey rsa:2048 -keyout private_key.pem 表示生成私钥(PKCS8格式),-nodes 表示私钥不加密,若不带参数将提示输入密码;
-x509表示输出证书,-days365 为有效期,此后根据提示输入证书拥有者信息;
若执行自动输入,可使用-subj选项):
openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt -subj “/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=vivo.com/emailAddress=xxxx@qq.com”
使用 已有RSA 私钥生成自签名证书(-new 指生成证书请求,加上-x509 表示直接输出证书,-key 指定私钥文件,其余选项与上述命令相同):
openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt -subj “/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=vivo.com/emailAddress=xxxx@qq.com”

生成签名请求及CA签名:
使用RSA私钥生成CSR签名请求:
openssl genrsa -aes256 -passout pass:111111 -out server.key 2048
openssl rea -new -key server.key -out server.csr (此后输入密码、server证书信息完成)
也可以命令行指定各类参数:
openssl req -new -key server.key -passin pass:111111 -out server.csr -subj “/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=vivo.com/emailAddress=xxxx@qq.com”
查看CSR的细节:
openssl req -in server.csr -noout -text
使用CA证书及CA密钥 对请求签发证书进行签发,生成x509证书(其中 CAxxx 选项用于指定CA 参数输入):
openssl x509 -req -days 3650 -in server.csr -CA cert.crt -CAkey rsa_private.key -passin pass:111111 -CAcreateserial -out server.crt

查看证书细节:
openssl x509 -in cert.crt -noout -text
转换证书编码格式:
openssl x509 -in cert.crt -inform DER -outform PEM -out cert.pem
合成 pkcs#12 证书(含私钥)

** 将 pem 证书和私钥转 pkcs#12 证书 **

openssl pkcs12 -export -in server.crt -inkey server.key -passin pass:111111 -password pass:111111 -out server.p12
其中-export指导出pkcs#12 证书,-inkey 指定了私钥文件,-passin 为私钥(文件)密码(nodes为无加密),-password 指定 p12文件的密码(导入导出)

** 将 pem 证书和私钥/CA 证书 合成pkcs#12 证书**

openssl pkcs12 -export -in server.crt -inkey server.key -passin pass:111111
-chain -CAfile ca.crt -password pass:111111 -out server-all.p12
其中-chain指示同时添加证书链,-CAfile 指定了CA证书,导出的p12文件将包含多个证书。(其他选项:-name可用于指定server证书别名;-caname用于指定ca证书别名)

** pcks#12 提取PEM文件(含私钥) **

openssl pkcs12 -in server.p12 -password pass:111111 -passout pass:111111 -out out/server.pem
其中-password 指定 p12文件的密码(导入导出),-passout指输出私钥的加密密码(nodes为无加密)
导出的文件为pem格式,同时包含证书和私钥(pkcs#8):

复制代码
Bag Attributes
localKeyID: 97 DD 46 3D 1E 91 EF 01 3B 2E 4A 75 81 4F 11 A6 E7 1F 79 40
subject=/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=vihoo.com/emailAddress=yy@vihoo.com
issuer=/C=CN/ST=GD/L=SZ/O=viroot/OU=dev/CN=viroot.com/emailAddress=yy@viroot.com
-----BEGIN CERTIFICATE-----
MIIDazCCAlMCCQCIOlA9/dcfEjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJD
1LpQCA+2B6dn4scZwaCD
-----END CERTIFICATE-----
Bag Attributes
localKeyID: 97 DD 46 3D 1E 91 EF 01 3B 2E 4A 75 81 4F 11 A6 E7 1F 79 40
Key Attributes:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDC/6rAc1YaPRNf
K9ZLHbyBTKVaxehjxzJHHw==
-----END ENCRYPTED PRIVATE KEY-----
复制代码
仅提取私钥

openssl pkcs12 -in server.p12 -password pass:111111 -passout pass:111111 -nocerts -out out/key.pem
仅提取证书(所有证书)

openssl pkcs12 -in server.p12 -password pass:111111 -nokeys -out out/key.pem
仅提取ca证书

openssl pkcs12 -in server-all.p12 -password pass:111111 -nokeys -cacerts -out out/cacert.pem
仅提取server证书

openssl pkcs12 -in server-all.p12 -password pass:111111 -nokeys -clcerts -out out/cert.pem

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值