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
- -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(默认值)、uncompressed和hybrid。有关点转换形式的更多信息,请阅读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获取副本。