视窗

视窗

我想使用我的网站 SSL 证书并签署一条消息,以便其他人可以使用我的网站 SSL 证书和我的消息并验证它是使用我的证书签署的。

如何使用我的 SSL 网站证书签署消息?

答案1

事实证明,这很简单。功劳归于https://stackoverflow.com/a/18359743/1045881。我只是为像我这样的新手重写了它。

假设该网站是example.com

视窗

获取证书

如果您是签名方,您可以控制您的证书。您可以按照以下说明进行操作:https://www.thawte.nl/en/support/manuals/microsoft/all+windows+servers/export+private+key+or+certificate/

这将为您提供私钥和以下步骤所需的证书。

如果您只是验证方,您可以单击浏览器中网址旁边的锁并查看证书,并将其以 base64 格式导出到 crt 或 cer 文件。文件名并不重要,但最好取domain.crt一个好名字。

安装 openssl

安装 openssl。我使用了https://indy.fulgan.com/SSL/推荐给我https://wiki.openssl.org/index.php/Binaries. 将其解压到 openssl 安装文件夹中。我将其命名为 openssl 文件夹。

运行 openssl

只需转到 openssl 文件夹并openssl键入并按回车键即可。现在您处于openssl提示符中。

符号

您需要您的私钥。它看起来像这样:

-----BEGIN RSA PRIVATE KEY-----
(bunch of base64 text)==
-----END RSA PRIVATE KEY-----

例如,将其保存在 中example.key。但文件名并不重要,只是有帮助而已。

然后将消息保存到名为的文件中message.txt。它可以是空的。文件名并不重要。

然后在你的 openssl 文件夹(你提取二进制文件的位置)中,运行

dgst -sha256 -sign example.key -out signature.txt message.txt

它使用消息和密钥来产生签名。

message+ key=>signature

核实

您将需要该网站的证书。它看起来像这样:

-----BEGIN CERTIFICATE-----
(bunch of base64)==
-----END CERTIFICATE-----

将其保存到example.crt。名称无所谓。

首先,您需要从证书文件(example.crt)创建一个公钥,如下所示:

x509 -in example.crt -pubkey -noout -out example.pub

这将使用证书来创建公钥。

certificate=>public key

然后您可以像这样验证该消息:

dgst -sha256 -verify example.pub -signature signature.txt -out result.txt message.txt

它使用公钥和签名来验证消息,并将验证结果放入文件中result.txt

public key+ signature+ message=>result

result.txt将包含“验证成功”或“验证失败”。


Linux

说明即将发布。我认为除了一些小语法外,它们非常相似。

相关内容