OpenSSL

密码学和 SSL/TLS 工具包

openssl-spkac

名称

openssl-spkac - SPKAC 打印和生成命令

概要

openssl spkac [-help] [-in 文件名] [-out 文件名] [-digest 摘要] [-key 文件名|uri] [-keyform DER|PEM|P12|ENGINE] [-passin 参数] [-challenge 字符串] [-pubkey] [-spkac spkac名称] [-spksect 部分] [-noout] [-verify] [-engine id] [-provider 名称] [-provider-path 路径] [-propquery propq]

描述

此命令处理 Netscape 签名公钥和挑战 (SPKAC) 文件。 它可以打印其内容、验证签名并从提供的私钥生成自己的 SPKAC。

选项

-help

打印用法信息。

-in 文件名

指定要从中读取的输入文件名,如果未指定此选项,则为标准输入。 如果使用 -key 选项,则忽略。

-out 文件名

指定要写入的输出文件名,默认情况下为标准输出。

-digest 摘要

使用指定的 摘要 对创建的 SPKAC 文件进行签名。 默认摘要算法为 MD5。

-key 文件名|uri

使用 文件名uri 指定的私钥创建 SPKAC 文件。 如果存在 -in-noout-spksect-verify 选项,则忽略这些选项。

-keyform DER|PEM|P12|ENGINE

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

-passin 参数

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

-challenge 字符串

如果正在创建 SPKAC,则指定挑战字符串。

-spkac spkac名称

允许包含 SPKAC 的变量使用替代名称形式。 默认值为 "SPKAC"。 此选项会影响生成的 SPKAC 文件和输入 SPKAC 文件。

-spksect 部分

允许包含 SPKAC 的部分使用替代名称形式。 默认值为默认部分。

-noout

不要输出 SPKAC 的文本版本(如果正在创建 SPKAC,则不使用)。

-pubkey

输出 SPKAC 的公钥(如果正在创建 SPKAC,则不使用)。

-verify

验证提供的 SPKAC 上的数字签名。

-engine id

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

-provider 名称
-provider-path 路径
-propquery propq

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

示例

打印 SPKAC 的内容

openssl spkac -in spkac.cnf

验证 SPKAC 的签名

openssl spkac -in spkac.cnf -noout -verify

使用挑战字符串 "hello" 创建 SPKAC

openssl spkac -key key.pem -challenge hello -out spkac.cnf

SPKAC 示例(长行拆分为清晰度)

SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA\
1cCoq2Wa3Ixs47uI7FPVwHVIPDx5yso105Y6zpozam135a\
8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03uPFoQIDAQAB\
FgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJ\
h1bEIYuc2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnD\
dq+NQ3F+X4deMx9AaEglZtULwV4=

备注

可以将创建的 SPKAC(附加了合适的 DN 组件)馈送到 openssl-ca(1)

SPKAC 通常在证书注册过程中提交包含 KEYGEN 标签的表单时由 Netscape 生成。

挑战字符串允许以原始形式证明私钥的占有权。 通过检查 SPKAC 签名和随机挑战字符串,可以保证用户知道要认证的公钥对应的私钥。 这在某些应用中很重要。 没有它,有可能使用之前的 SPKAC 执行 "重放攻击"。

参见

openssl(1)openssl-ca(1)

历史

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

-digest 选项在 OpenSSL 3.0 中添加。

版权所有 2000-2021 OpenSSL 项目作者。 保留所有权利。

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