如何使用受信任的身份在命令行上对文件进行签名?
对于电子邮件,您将获得由 CA 签名的 x509 证书 - 您可以使用相同的证书来签署文件吗?
或者 CA 是否需要签署您的公钥,而您需要使用相应的私钥来签署文件?
现在我刚刚找到了sign files with the private key的方法,但不是由 CA 签署公钥的方法,也不是使用证书签署文件的方法。
最佳答案
您永远不想用公钥签名,因为这样签名就没有意义了。许多人都有公钥。只有一个人(签名者)应该拥有私钥。如果您确实使用公钥进行签名,则拥有该公钥的其他人也可以创建同样有效的签名。无法确定谁真正签署了它,这违背了签名的目的。此外,也无法验证使用公钥签署的签名,因为没有人拥有私钥。
您始终使用私钥进行签名并使用公钥进行验证。
您的签名可以附有 X509 证书。如果证书是由受信任的实体签名的,那么无论谁拥有该证书并信任它,也可以信任由与证书中的公钥相对应的私钥生成的签名。
您在问题中提供的链接包含用于验证签名的 openssl 命令。除了使用 openssl dgst
和 openssl rsautl
方法来验证签名之外,您还可以使用 openssl pkeyutl .
openssl pkeyutl -verify -in data -sigfile signature.bin -pubin -inkey pubkey.pem
关于pdf - 如何使用 OpenSSL 对文件进行可信签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362827/