gpt4 book ai didi

certificate - SSL 证书可以用于对文件进行数字签名吗?

转载 作者:行者123 更新时间:2023-12-04 07:57:22 24 4
gpt4 key购买 nike

我想问一个关于数字签名的问题,我不太确定。
我不想创建一个自签名证书来用于对某些 (PDF) 文件进行签名,而是想使用已验证我的数据的 SSL 证书。

但问题是:SSL 证书可以用于数字签名文件还是以某种方式不兼容?

编辑:澄清一下,这个问题不是关于如何签署 PDF,而是关于是否可以使用(或以任何方式转换)SSL 证书来签署文件。

最佳答案

支持数字签名证书必须有digitalSignature选项是 keyUsage字段(以及 codeSigning 选项中的 extendedKeyUsage 字段,如果您想用它签署程序)。

签名可以使用现有工具或手动完成(Java 示例,您不需要它,但无论如何此代码片段可能很有用):

byte[] bytesToSign = loadMyData();
KeyStore ks = KeyStore.getInstance("pkcs12", "SunJSSE");
ks.load(new FileInputStream("cert.p12"), "passwd1".toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey("myalias", "passwd2".toCharArray());
Signature sig = Signature.getInstance("SHA1withRSA", ks.getProvider());
sig.initSign(privateKey);
sig.update(bytesToSign);
byte[] signature = sig.sign();

要使用 openssl 制作您自己的非自签名证书,请参阅 this SO answer .

也对签署 PDF 感到好奇 - 在您的情况下,这些文件的单独哈希和还不够吗?

编辑:如果您想要任何签名,而不是现有工具的 X.509 签名,您可以从您的证书中提取 RSA key 并进行签名,而无需担心 keyUsage field 。

关于certificate - SSL 证书可以用于对文件进行数字签名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com