Openssl 使用公共证书验证签名

Openssl 使用公共证书验证签名,openssl,digital-signature,Openssl,Digital Signature,我正在研究签名的思想,然后使用OpenSSL验证消息的签名。我已经计算出了签名部分,但我无法验证同一个签名 假设我在一个名为plaintext.txt的文件中有一些明文。我在signature.txt中有明文签名。此明文是使用RSA私钥签名的。我有证书,其中包含与私钥一起使用的公钥。我相信有一个OpenSSL命令可以让我验证签名,而无需单独提取公钥。以下是我正在尝试的: openssl sha1-verify-inkey cert.pem-certin-signature signature.t

我正在研究签名的思想,然后使用OpenSSL验证消息的签名。我已经计算出了签名部分,但我无法验证同一个签名

假设我在一个名为plaintext.txt的文件中有一些明文。我在signature.txt中有明文签名。此明文是使用RSA私钥签名的。我有证书,其中包含与私钥一起使用的公钥。我相信有一个OpenSSL命令可以让我验证签名,而无需单独提取公钥。以下是我正在尝试的:

openssl sha1-verify-inkey cert.pem-certin-signature signature.txt明文

但是我在命令行中遇到了这个错误:

无需验证的签名:使用-signature选项


假设您的PEM编码的X.509签名证书存储在文件“signer.cer”中,PEM编码的PKCS#1私钥存储在文件“signer.key”中

您可以使用OpenSSL命令行实用程序对文件“plaintext.txt”进行签名,并将PEM编码的PKCS#7结构中存储的签名输出到文件“signature.p7s”中:

您可以使用以下命令验证签名:

openssl smime -verify -binary -inform PEM -in signature.p7s -content plaintext.txt -certfile signer.cer -nointern -noverify > /dev/null
如果您使用的是Windows,则只需将
/dev/null
替换为
nul


有关各个选项的详细信息,请参阅。

假设您的PEM编码的X.509签名证书存储在文件“signer.cer”中,PEM编码的PKCS#1私钥存储在文件“signer.key”中

您可以使用OpenSSL命令行实用程序对文件“plaintext.txt”进行签名,并将PEM编码的PKCS#7结构中存储的签名输出到文件“signature.p7s”中:

您可以使用以下命令验证签名:

openssl smime -verify -binary -inform PEM -in signature.p7s -content plaintext.txt -certfile signer.cer -nointern -noverify > /dev/null
如果您使用的是Windows,则只需将
/dev/null
替换为
nul


有关各个选项的详细信息,请参阅。

假设您的PEM编码的X.509签名证书存储在文件“signer.cer”中,PEM编码的PKCS#1私钥存储在文件“signer.key”中

您可以使用OpenSSL命令行实用程序对文件“plaintext.txt”进行签名,并将PEM编码的PKCS#7结构中存储的签名输出到文件“signature.p7s”中:

您可以使用以下命令验证签名:

openssl smime -verify -binary -inform PEM -in signature.p7s -content plaintext.txt -certfile signer.cer -nointern -noverify > /dev/null
如果您使用的是Windows,则只需将
/dev/null
替换为
nul


有关各个选项的详细信息,请参阅。

假设您的PEM编码的X.509签名证书存储在文件“signer.cer”中,PEM编码的PKCS#1私钥存储在文件“signer.key”中

您可以使用OpenSSL命令行实用程序对文件“plaintext.txt”进行签名,并将PEM编码的PKCS#7结构中存储的签名输出到文件“signature.p7s”中:

您可以使用以下命令验证签名:

openssl smime -verify -binary -inform PEM -in signature.p7s -content plaintext.txt -certfile signer.cer -nointern -noverify > /dev/null
如果您使用的是Windows,则只需将
/dev/null
替换为
nul


有关各个选项的详细信息,请参阅。

能否添加用于生成签名的命令?OpenSSL支持多种签名格式,这将有助于澄清您的问题。与任何其他文件一样,
-signature
似乎正在作为参数传递给
-certin
。也许这是一个应该首先纠正的错误。类似于
-certin cert.pem-signature signature.txt…
。另外,您可能应该使用Jariq的建议,而不是
openssl sha1-verify
。您可以添加用于生成签名的命令吗?OpenSSL支持多种签名格式,这将有助于澄清您的问题。与任何其他文件一样,
-signature
似乎正在作为参数传递给
-certin
。也许这是一个应该首先纠正的错误。类似于
-certin cert.pem-signature signature.txt…
。另外,您可能应该使用Jariq的建议,而不是
openssl sha1-verify
。您可以添加用于生成签名的命令吗?OpenSSL支持多种签名格式,这将有助于澄清您的问题。与任何其他文件一样,
-signature
似乎正在作为参数传递给
-certin
。也许这是一个应该首先纠正的错误。类似于
-certin cert.pem-signature signature.txt…
。另外,您可能应该使用Jariq的建议,而不是
openssl sha1-verify
。您可以添加用于生成签名的命令吗?OpenSSL支持多种签名格式,这将有助于澄清您的问题。与任何其他文件一样,
-signature
似乎正在作为参数传递给
-certin
。也许这是一个应该首先纠正的错误。类似于
-certin cert.pem-signature signature.txt…
。此外,您可能应该使用Jariq的建议,而不是
openssl sha1-verify