OpenSSL

密码学和 SSL/TLS 工具包

openssl-rsa

名称

openssl-rsa - RSA 密钥处理命令

概要

openssl rsa [-help] [-inform DER|PEM|P12|ENGINE] [-outform DER|PEM] [-in filename|uri] [-passin arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-aria128] [-aria192] [-aria256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-traditional] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-pvk-strong] [-pvk-weak] [-pvk-none] [-engine id] [-provider name] [-provider-path path] [-propquery propq]

描述

此命令处理 RSA 密钥。它们可以在各种形式之间进行转换,并且可以打印出它们的组成部分。

选项

-help

打印使用信息。

-inform DER|PEM|P12|ENGINE

密钥输入格式;默认情况下未指定。有关详细信息,请参见 openssl-format-options(1)

-outform DER|PEM

密钥输出格式;默认值为 PEM。有关详细信息,请参见 openssl-format-options(1)

-traditional

写入私钥时,使用传统的 PKCS#1 格式而不是 PKCS#8 格式。

-in filename|uri

指定从其中读取密钥的输入文件,或者如果没有指定此选项,则为标准输入。如果密钥已加密,则会提示输入密码。

-passin arg, -passout arg

输入和输出文件的密码来源。有关 arg 格式的更多信息,请参见 openssl-passphrase-options(1)

-out filename

指定要写入密钥的输出文件名,或者如果没有指定此选项,则为标准输出。如果设置了任何加密选项,则会提示输入密码。输出文件名 不应 与输入文件名相同。

-aes128, -aes192, -aes256, -aria128, -aria192, -aria256, -camellia128, -camellia192, -camellia256, -des, -des3, -idea

这些选项在输出私钥之前使用指定的密码对其进行加密。会提示输入密码。如果未指定这些选项中的任何一个,则密钥将以明文形式写入。这意味着此命令可用于通过不提供任何加密选项来从密钥中删除密码,或者通过设置密码来添加或更改密码。这些选项只能与 PEM 格式的输出文件一起使用。

-text

除了编码版本之外,还以纯文本形式打印出各种公钥或私钥组件。

-noout

此选项阻止输出密钥的编码版本。

-modulus

此选项打印出密钥模量的值。

-check

此选项检查 RSA 私钥的一致性。

-pubin

默认情况下,从输入中读取私钥。使用此选项,将改为读取公钥。如果输入不包含公钥,但包含私钥,则使用其公钥部分。

-pubout

默认情况下,输出私钥:使用此选项,将改为输出公钥。如果输入是公钥,则此选项会自动设置。

-RSAPublicKey_in, -RSAPublicKey_out

类似于 -pubin-pubout,除了使用 RSAPublicKey 格式。

-pvk-strong

启用“强”PVK 编码级别(默认)。

-pvk-weak

启用“弱”PVK 编码级别。

-pvk-none

不强制执行 PVK 编码。

-engine id

请参见 openssl(1) 中的“引擎选项”。此选项已弃用。

-provider name
-provider-path path
-propquery propq

请参见 openssl(1) 中的“提供者选项”provider(7)property(7)

注意事项

openssl-pkey(1) 命令能够执行此命令可以执行的所有操作,以及支持其他公钥类型。

示例

openssl-pkey(1) 命令的文档包含等效于此处列出的示例。

要删除 RSA 私钥上的密码

openssl rsa -in key.pem -out keyout.pem

要使用三重 DES 加密私钥

openssl rsa -in key.pem -des3 -out keyout.pem

要将私钥从 PEM 格式转换为 DER 格式

openssl rsa -in key.pem -outform DER -out keyout.der

要将私钥的组件打印到标准输出

openssl rsa -in key.pem -text -noout

只需输出私钥的公钥部分

openssl rsa -in key.pem -pubout -out pubkey.pem

RSAPublicKey 格式输出私钥的公钥部分

openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem

错误

应该有一个选项可以自动处理 .key 文件,而无需手动编辑它们。

另请参见

openssl(1)openssl-pkey(1)openssl-pkcs8(1)openssl-dsa(1)openssl-genrsa(1)openssl-gendsa(1)

历史

-engine 选项在 OpenSSL 3.0 中已弃用。

Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved.

根据 Apache 许可证 2.0 版(“许可证”)许可。除遵守许可证外,您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取副本。