是否可以使用keytool或等效工具在.JKS密钥库中重新生成私钥?
我已经获得了一个证书和一个JKS密钥库,但是在导入证书时,它看起来像用于生成CSR的私钥已被删除。
我可以看到如何使用新的私钥创建新的密钥库,但这将与CSR或证书不匹配。
最佳答案
不,这就是非对称加密的全部要点:当仅知道公钥(包含在CSR和证书中)时,就不可能生成私钥。
如果您只能从CSR或证书中重新生成私钥,则任何人都可以模拟已向其颁发证书的实体。
如果您丢失了私钥,则只需创建一个新的密钥对,提交一个新的CSR并获得一个新的证书。一些CA允许在初始证书有效期内免费将此类重新密钥作为其合同的一部分。
编辑:只是为了澄清什么是企业社会责任。
要申请X.509证书,您必须:
生成公钥/私钥对。从本质上讲,公钥可以公开分发,因为它不足以获取私钥(至少在合理的时间内)。
将带有您的身份信息的公共密钥提交给证书颁发机构。可以使用以下方法完成:
证书签名请求(CSR,PKCS#10),其中包含您的公钥和您希望包含在证书中的数据(例如,所需的主题DN)。尽管与证书中的数据非常相似,但是CA应当主要使用该数据来标识请求本身,因为正确执行其工作的CA应该检查其放入证书中的内容,而不只是盲目地将CSR转换为证书。使用与证书中的公钥匹配的私钥对CSR本身进行签名。它实际上非常类似于自签名的X.509证书(没有颁发者信息和有效日期),但不是一个。
浏览器内证书应用程序的SPKAC或CRMF。
然后,CA接受此CSR(或等效证书),并在此过程之外进行必要的验证,以审核要嵌入到证书中的信息,并颁发证书(通过使用自己的私钥对其进行签名)。它有效地保证了您的公钥(从CSR中提取)与其在证书中嵌入的信息(例如,您的名称和/或该证书所针对的域名)之间的绑定。它会将证书发回给您。
然后,您必须将此证书与与其公钥匹配的私钥一起使用。一些工具使用单独的文件来执行此操作,还可以针对密钥库中的私钥条目将证书导入回去。
没有私有密钥的CSR或证书是没有用的。您可以很容易地再次创建一个新的CSR,但是您还需要创建一个新的密钥对。 CSR最重要的部分是公钥,并具有匹配的私钥。否则,您可以丢弃CSR。
关于java - Tomcat/JKS/Keytool-重新生成私钥?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12094986/