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、验签
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 证书
38、生成证书请求和私钥(非CA)
openssl req -new -newkey rsa:1024 -nodes -keyout one.key -out one.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.nfs.com/CN=one/emailAddress=one@nfs.com"
39、使用ca签发证书
openssl x509 -req -days 3650 -sha256 -in one.csr -CA ca.cer -CAkey ca.key -set_serial 01 -out one.crt