openssl
是目前最流行的SSL
密码库工具,提供了一组通用、健壮、完备的工具。
构成
- 密码算法库
- 秘钥和证书封装管理
-
SSL
通讯API
接口
秘钥操作
- 生成不加密的
RSA
私钥
openssl genrsa -out rsa_private.key 2048
- 使用不加密的
RSA
私钥生成公钥
openssl rsa -in rsa_private.key -pubout -out rsa_public.key
- 生成加密
RSA
私钥(使用AES256
加密)
openssl genrsa -aes256 -passout pass:123456 -out rsa_aes_private.key 2048
- 使用加密的
RSA
私钥生成公钥
openssl rsa -in rsa_aes_private.key -passin pass:123456 -pubout -out rsa_public.key
转换相关
- 加密私钥转非加密
openssl rsa -in rsa_aes_private.key -passin pass:123456 -out rsa_private.key
- 非加密私钥转加密
openssl rsa -in rsa_private.key -aes256 -passout pass:123456 -out rsa_aes_private.key
- 私钥
PEM
转DER
-
-inform
和-outform
参数制定输入输出格式,由der
转pem
格式同理
openssl rsa -in rsa_private.key -outform der-out rsa_aes_private.der
- 私钥
PKCS1
转PKCS8
(加密算法填充模式)
openssl pkcs8 -topk8 -in rsa_private.key -passout pass:123456 -out pkcs8_private.key
- 查看私钥明细
openssl rsa -in rsa_private.key -noout -text
生成自签证书
- 生成
RSA
私钥和自签名证书
openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt
-
req
证书请求的子命令 -
newkey rsa:2048 -keyout private_key.pem
生成私钥(PKCS8
格式) -
-nodes
秘钥不加密,无此参数则提示输入密码 -
-x509
输出证书 -
-days365
有效期 -
subj
证书拥有者信息,如果没有此参数,也可以根据提示输入
- 使用已有
RSA
私钥生成自签名证书
openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt
-
-new
生成证书请求 -
-x509
直接输出证书 -
-key
指定私钥
生成签名请求文件及CA签名
- 生成RSA秘钥
openssl genrsa -aes256 -passout pass:123456 -out server.key 2048
- 生成CSR签名请求(把秘钥生成向CA发起签发证书请求的文件)
openssl req -new -key server.key -out server.csr
- 使用CA证书及CA秘钥,对请求签发证书进行签发,生成
x509
证书
openssl x509 -req -day 3650 -in server.csr -CA ca.cert -CAkey ca.key -passin pass:123456 -CAcreateserial -out server.crt
原文,未完待续...
网友评论