https://blog.csdn.net/t990423909/article/details/120837032 Openssl子命令 genrsa, rsa, req, x509命令详解
Openssl子命令 genrsa, rsa, req, x509命令详解
openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS 协议的实现。
genrsa、rsa、req、x509子命令主要用于RSA密钥的生成和处理,以及证书的申请和制作。
一、genrsa子命令
用途
genrsa子命令主要用于生成RSA私钥。
命令行格式:
openssl genrsa [args] [numbits]
选项
-des 使用des cbc模式对私钥文件进行加密。 -des3 使用des3 cbc模式对私钥文件进行加密。 -idea 使用idea cbc模式对私钥文件进行加密。 -aes128, -aes192, -aes256 使用aes cbc模式对私钥文件进行加密。 -out file 指定输出私钥文件名。 -f4 指定F4做为E值,默认。 -3 指定3做为E值。 -seed arg 指定cbc的随机种子。 -rand file:file 指定随机数种子文件。
举例
1. 创建不加密的RSA私钥。
openssl genrsa -out test.key 1024
2. 创建加密的RSA私钥。
openssl genrsa -des3 -out test.key 1024
3. 指定随机数创建RSA私钥。
openssl genrsa -des3 -out test.key 1024 -seed abc openssl genrsa -des3 -out test.key 1024 -rand file:hello.txt
二、rsa子命令
用途:
rsa子命令主要用于处理RSA公私钥文件。
命令行格式:openssl rsa [options] <infile> outfile
选项说明:
-inform arg 指定输入文件格式,可以为DER或PEM,默认为PEM。 -outform arg 指定输出文件格式,可以为DER或PEM,默认为PEM。 -in arg 指定输入文件。 -out arg 指定输出文件。 -pubin 指定输入文件为公钥,默认为私钥。 -pubout 指定输出文件为公钥,默认为私钥。 -passin arg 指定输入文件的口令保护来源。 -passout arg 指定输出文件的口令保护来源。 -des 使用des cbc模式对输出文件进行加密。 -des3 使用des3 cbc模式对输出文件进行加密。 -idea 使用idea cbc模式对输出文件进行加密。 -aes128, -aes192, -aes256 使用aes cbc模式对输出文件进行加密。 -text 打印密钥信息。 -noout 不向控制台打印密钥信息。 -modulus 打印RSA的模数信息。 -check 检查RSA私钥的有效性。
- 用法举例:
- 从私钥中提取公钥:
openssl rsa -in test.key -out test.pub -pubout
- 转换密钥文件的格式:
openssl rsa -in test.key -out test.key.der -outform DER
- 消除私钥的口令:
openssl rsa -in test.key -out test.key.nopass
- 提取私钥后,改变加密算法:
openssl rsa -in test.key -out test.key.aes128 -aes128
- 指定输入私钥的口令来源,显示私钥信息:
openssl rsa -in test.key -text -check -passin file:pass.txt
- 对私钥有效性进行检查:
openssl rsa -in test.key -check
三、req子命令
- 用途
req子命令主要用于创建证书请求文件。 - 命令行格式:
openssl req [options] <infile> outfile
- 选项说明: