1、生成 rsa 私钥

openssl genrsa -aes256 -out ca_private.key 2048

2、去除私钥密码保护

openssl rsa -in ca_private.key -out ca.key

3、根据私钥生成公钥

openssl rsa -in ca_private.key -out ca_public.key -pubout

4、生成证书请求

openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CA/emailAddress=user1@test.com"

5、生成自签证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer

6、查看 x509 证书

openssl x509 -in ca.cer -noout -text

7、生成 pkcs#12 证书

openssl pkcs12 -export -clcerts -in ca.cer -inkey ca_private.key -out ca.pfx

8、签名

openssl rsautl -sign -inkey ca_private.key -in sign.txt  -out sign.t

9、验签

~~~shell
openssl rsautl -verify -inkey ca_private.key -in sign.t -out verify.txt         # 使用私钥验签
openssl rsautl -verify -in sign.t -out verify.txt -inkey ca_public.key -pubin   # 使用公钥验签

10、比较文件

diff sign.txt verify.txt

11、数据加密

openssl rsautl -encrypt -inkey ca_public.key -in ecrypt.txt -out e.txt -pubin   # 使用公钥加密
openssl rsautl -encrypt -certin -inkey ca.cer -in ecrypt.txt -out e.txt         # 使用证书中公钥加密

12、数据解密

openssl rsautl -decrypt -inkey ca_private.key -in e.txt -out decrypt.txt

13、将 x509 证书从 pem 格式转换为 der 格式

openssl x509 -inform PEM -outform DER -in ca.cer -out ca.der

14、将 x509 证书从 der 格式转换为 pem 格式

openssl x509 -inform DER -outform PEM -in ca.der -out ca.pem

15、将 rsa 密钥从 pem 格式转换为 der 格式

openssl rsa -inform PEM -outform DER -in ca_private.key -out ca_private.der         # 转换私钥
openssl rsa -inform PEM -outform DER -in ca_public.key -out ca_public.der -pubin    # 转换公钥

16、将 rsa 密钥从 der 格式转换为 pem 格式

openssl rsa -inform DER -outform PEM -in ca_private.der -out ca_private.pem         # 私钥装换
openssl rsa -inform DER -outform PEM -in ca_public.der -out ca_public.pem -pubin    # 转换公钥

17、base64 编码

openssl base64 -e -in text.ascii -out text.base64

18、base64 解码

openssl base64 -d -in text.base64 -out text.ascii

19、查看 openssl 支持的摘要算法

openssl dgst - + 双击 Tab 键

20、计算摘要信息

openssl dgst -md5 ecrypt.txt    # 使用 md5 对 ecrypt.txt 计算摘要
openssl dgst -sha1 ecrypt.txt   # 使用 sha1 对 ecrypt.txt 计算摘要

21、创建 EC 参数和私钥文件(使用 prime256v1 曲线)

openssl ecparam -out ec_param.pem -name prime256v1 -param_enc explicit -genkey

22、查看EC私钥

openssl ecparam -in ec_param.pem -text

23、验证EC参数

openssl ecparam -in ec_param.pem -check

24、生成公钥

openssl ec -in ec_param.pem -pubout -out ec_pubkey.pem

25、显示密钥

openssl ec -in ec_param.pem -text               # 显示私钥
openssl ec -in ec_pubkey.pem -pubin -text       # 显示公钥

26、生成 EC 证书请求

openssl req -new -sha256 -key ec_param.pem -out ecc.req -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CA/emailAddress=user1@test.com"

27、生成 EC 证书

openssl x509 -req -days 36500 -signkey ec_param.pem -in ecc.req -out ecc.cer

28、使用 EC 签名

29、使用 EC 验签

30、使用 EC 加密

31、使用 EC 解密

32、查看 openssl 支持的对称密钥算法

openssl enc -ciphers

33、使用对称密钥加密

openssl enc -des-cbc -e -in data.txt -out encrypt.txt -pass pass:12345678

34、使用对称密钥解密

openssl enc -des-cbc -d -in encrypt.txt -out data.txt -pass pass:12345678

35、生成随机数

openssl rand -out rand.txt 100

37、验证证书

openssl verify -verbose -CAfile ca.cer ca.cer       # 使用 ca.cer 验证 ca.cer 证书
12-08 09:59