pdf - 如何使用 OpenSSL 对文件进行可信签名

标签 pdf openssl certificate x509

如何使用受信任的身份在命令行上对文件进行签名?

对于电子邮件,您将获得由 CA 签名的 x509 证书 - 您可以使用相同的证书来签署文件吗?

或者 CA 是否需要签署您的公钥,而您需要使用相应的私钥来签署文件?

现在我刚刚找到了sign files with the private key的方法,但不是由 CA 签署公钥的方法,也不是使用证书签署文件的方法。

最佳答案

您永远不想用公钥签名,因为这样签名就没有意义了。许多人都有公钥。只有一个人(签名者)应该拥有私钥。如果您确实使用公钥进行签名,则拥有该公钥的其他人也可以创建同样有效的签名。无法确定谁真正签署了它,这违背了签名的目的。此外,也无法验证使用公钥签署的签名,因为没有人拥有私钥。

您始终使用私钥进行签名并使用公钥进行验证。

您的签名可以附有 X509 证书。如果证书是由受信任的实体签名的,那么无论谁拥有该证书并信任它,也可以信任由与证书中的公钥相对应的私钥生成的签名。

您在问题中提供的链接包含用于验证签名的 openssl 命令。除了使用 openssl dgstopenssl rsautl 方法来验证签名之外,您还可以使用 openssl pkeyutl .

openssl pkeyutl -verify -in data -sigfile signature.bin -pubin -inkey pubkey.pem

关于pdf - 如何使用 OpenSSL 对文件进行可信签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362827/

相关文章:

iphone - UIView renderInContex 具体位置

macos - 在 wkhtmltopdf 和 pdftk 中使用任何技巧来减小文件大小?

windows-phone-7 - 如何在 Windows Phone 7 上安装根证书?

ssl - openshift - 自定义域 - ie8 和 XP 中的 ssl 证书错误

java - 使用基于 Java Key Store 别名的单个证书

pdf - 使用 Ghostscript 为 postscript 文件中的某些页面添加双面选项

iOS 替代 PDF 渲染器

php - Openssl RSA加密-解密

tomcat - 配置 Tomcat 以检查 CRL 分发点

c++ - C++/OpenSSL将PEM加载到STACK_OF(X509)