Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.7. 使用 OpenSSL

OpenSSL 是一个为应用程序提供加密协议的库。Theopenssl 命令行实用程序启用使用 shell 中的加密功能。它包括交互模式。
Theopenssl 命令行实用程序有多个 pseudo-commands,用于提供有关系统上安装的openssl 版本的命令的信息。pseudo-commands list-standard-commands、list-message-digest-commandslist-cipher-commands 会分别输出可在 presentopenssl 实用程序中使用的所有标准命令、消息摘要命令或密码命令的列表。
pseudo-commands list-cipher-algorithmslist-message-digest-algorithms 列出了所有密码和消息摘要名称。pseudo-command list-public-key-algorithms 列出了所有支持的公钥算法。例如,要列出支持的公钥算法,请运行以下命令:
~]$ openssl list-public-key-algorithms
pseudo-commandno- command-name 测试指定名称的命令名是否可用。适用于 shell 脚本.如需更多信息,请参阅 man openssl(1)

4.7.1. 创建和管理加密密钥

使用 OpenSSL 时,公钥派生自对应的私钥。因此,一旦决定算法,第一步是生成私钥。在这些示例中,私钥被称为 privkey.pem。例如,要使用默认参数创建 RSA 私钥,请运行以下命令:
~]$ openssl genpkey -algorithm RSA -out privkey.pem
RSA 算法支持以下选项:
  • rsa_keygen_bits:numbits - 所生成的密钥中的位数。如果未指定 1024,则使用。
  • rsa_keygen_pubexp:value - RSA 公共exponent 值。这可以是一个大的十进制值,或者一个十六进制值(以 0x 开头)。默认值为 65537
例如,要使用 3 创建 2048 位 RSA 私钥,请使用以下命令:
~]$ openssl genpkey -algorithm RSA -out privkey.pem -pkeyopt rsa_keygen_bits:2048 \ -pkeyopt rsa_keygen_pubexp:3
要使用 128 位 AES 和密码 hello 对私钥进行加密,请运行以下命令:
~]$ openssl genpkey -algorithm RSA -out privkey.pem -aes-128-cbc -pass pass:hello
有关生成私钥的更多信息,请参阅 man genpkey(1)