我只使用数字证书签署文件,我的理解是正确的流程如下:
我工作的机构为员工提供不同类型的数字证书(来自digicert),用于多种用途,其中之一是数字签名,这是我的预期用途。在我可以生成自己的优质数码证书的digicert网页上,我只能填写一个字段,这是可选的,即CSR字段。其他一些字段是预先填写的,比如我的名字,以及有效期(1年)。由于不知道自己在做什么,我首先单击generate,而没有首先创建CSR。其中,我得到了3个文件,客户端证书和2个其他证书。它们在创建pfx时毫无用处,可以用来在没有相应私钥的情况下对文档进行签名。经过一番研究,我了解到我应该遵循上面的步骤,但现在我想知道为什么CSR是可选的。在什么情况下可以使用没有私钥的客户端证书?
无论我是否填写了CSR,我从digicert申请高级数字证书时得到的输出似乎都是一样的(3个crt文件,其中一个在我的名字上,另外两个是信任客户证书的2家公司)。唯一的区别是,如果没有私钥,我就不能使用openssl创建pfx。
我甚至尝试使用相同的私钥为两组优质证书创建pfx (用CSR创建,而不使用CSR)。对于用CSR创建的集合,一切正常,对于不填充CSR而创建的集,openssl抱怨说没有匹配私钥的数字证书。
如果我的理解是正确的,没有CSR,就不可能有到私钥的链接。没有公共私钥对,数字证书又能做些什么呢?
发布于 2019-04-08 12:42:49
如果我的理解是正确的,没有CSR,就不可能有到私钥的链接
你的理解是错误的。
CSR包含公钥并由私钥签名。私钥由证书所有者(不是CA)保持私有。在CSR中,它不是交给CA的。CA还不需要私钥,而只需要公钥,因为公钥将在最终证书中结束。
发布于 2019-04-08 16:55:49
证书提供程序将为您提供以下选项:
生成您自己的密钥对和CSR,并将CSR发送给它们进行签名;或
允许他们为您生成密钥对和CSR,由它们签名,然后从它们下载包含证书和私钥的包。
选择是您的:如果您信任他们有您的私钥副本,选项B是一个很好的方便因素,可以使您的证书管理更容易。如果您不/不能/不应该信任它们,那么您唯一的选择就是生成自己的密钥,并为它们提供CSR签名。
无论如何,你必须拥有私人钥匙才能签署文件。
https://security.stackexchange.com/questions/207020
复制相似问题