OpenSSL

密码学和SSL/TLS工具包

openssl-pkey

名称

openssl-pkey - 公钥或私钥处理命令

语法

openssl pkey [-help] [-engine id] [-provider name] [-provider-path path] [-propquery propq] [-check] [-pubcheck] [-in filename|uri] [-inform DER|PEM|P12|ENGINE] [-passin arg] [-pubin] [-out filename] [-outform DER|PEM] [-cipher] [-passout arg] [-traditional] [-pubout] [-noout] [-text] [-text_pub] [-ec_conv_form arg] [-ec_param_enc arg]

描述

此命令处理公钥或私钥。它们可以在各种形式之间转换,并且可以打印其组件。

选项

通用选项

-help

打印使用信息。

-engine id

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

-provider name
-provider-path path
-propquery propq

参见"openssl(1)中的提供程序选项"provider(7)property(7)

-check

此选项检查公钥和私钥组件的密钥对的一致性。

-pubcheck

此选项检查公钥或密钥对的公钥组件的正确性。

输入选项

-in filename|uri

这指定了要从中读取密钥的输入,如果未指定此选项,则为标准输入。如果密钥输入已加密且未提供-passin,则将提示输入密码。

-inform DER|PEM|P12|ENGINE

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

-passin arg

密钥输入的密码源。

有关arg格式的更多信息,请参见openssl-passphrase-options(1)

-pubin

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

输出选项

-out filename

这指定了输出文件名以保存密钥的编码和/或文本输出,如果未指定此选项,则为标准输出。如果设置了任何密码选项但未提供-passout,则将提示输入密码。输出文件名不应与输入文件名相同。

-outform DER|PEM

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

-cipher

使用提供的密码加密PEM编码的私钥。EVP_get_cipherbyname()接受的任何算法名称都是可以接受的,例如aes128。DER输出不支持加密。

-passout arg

输出文件的密码源。

有关arg格式的更多信息,请参见openssl-passphrase-options(1)

-traditional

通常,私钥使用标准格式写入:这是带有所需加密算法(如果有)的PKCS#8格式。如果指定了-traditional选项,则改为使用旧的“传统”格式。

-pubout

默认情况下,输出私钥和公钥;此选项将输出限制为公钥组件。如果输入是公钥,则会自动设置此选项。

-text结合使用时,这等效于-text_pub

-noout

不要以编码形式输出密钥。

-text

以纯文本形式输出各种密钥组件(可能除了PEM编码形式之外)。这不能与DER格式的编码输出结合使用。

-text_pub

仅以文本形式输出公钥组件(也适用于私钥)。这不能与DER格式的编码输出结合使用。

-ec_conv_form arg

此选项仅适用于基于椭圆曲线的密钥。

这指定了如何将椭圆曲线上的点转换为八位字节串。可能的值为:compressed(默认值)、uncompressedhybrid。有关点转换形式的更多信息,请阅读X9.62标准。注意由于专利问题,对于二进制曲线,compressed选项默认情况下是禁用的,并且可以通过在编译时定义预处理器宏OPENSSL_EC_BIN_PT_COMP来启用。

-ec_param_enc arg

此选项仅适用于基于椭圆曲线的公钥和私钥。

这指定了如何编码椭圆曲线参数。可能的值为:named_curve,即ec参数由OID指定,或explicit,其中ec参数被显式给出(有关EC参数结构的定义,请参见RFC 3279)。默认值为named_curve注意RFC 3279中指定的implicitlyCA备选方案目前在OpenSSL中未实现。

示例

删除私钥上的密码

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

使用三重DES加密私钥

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

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

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

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

openssl pkey -in key.pem -text -noout

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

openssl pkey -in key.pem -text_pub -noout

仅输出私钥的公钥部分

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

将EC参数编码更改为explicit

openssl pkey -in key.pem -ec_param_enc explicit -out keyout.pem

将EC点转换形式更改为compressed

openssl pkey -in key.pem -ec_conv_form compressed -out keyout.pem

参见

openssl(1)openssl-genpkey(1)openssl-rsa(1)openssl-pkcs8(1)openssl-dsa(1)openssl-genrsa(1)openssl-gendsa(1)

历史

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

版权所有 2006-2023 OpenSSL项目作者。保留所有权利。

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