Java Tomcat/JKS/Keytool-重新生成私钥?

Java Tomcat/JKS/Keytool-重新生成私钥?,java,ssl,keytool,jks,Java,Ssl,Keytool,Jks,是否可以使用keytool或等效工具重新生成.JKS密钥库中的私钥 我已经获得了一个证书和一个JKS密钥库,但是在导入证书时,用于生成CSR的私钥似乎已被删除 我可以看到如何使用新的私钥创建新的密钥库,但这与CSR或证书不匹配 是否可以使用keytool或等效工具重新生成.JKS密钥库中的私钥 是的,但是重新生成私钥和CSR。CSR将提交给CA,CA将为您提供新的公钥 您可以随时使用以下命令重新导入密钥库: $ openssl req -new -newkey rsa:2048 -nodes

是否可以使用keytool或等效工具重新生成.JKS密钥库中的私钥

我已经获得了一个证书和一个JKS密钥库,但是在导入证书时,用于生成CSR的私钥似乎已被删除

我可以看到如何使用新的私钥创建新的密钥库,但这与CSR或证书不匹配

是否可以使用keytool或等效工具重新生成.JKS密钥库中的私钥

是的,但是重新生成私钥和CSR。CSR将提交给CA,CA将为您提供新的公钥

您可以随时使用以下命令重新导入密钥库:

$ openssl req -new -newkey rsa:2048  -nodes -keyout private.key -out signing request.csr -config openssl.conf
对于较新的JDK版本,请确保同时将证书导入两个路径:

C:\ProgramFiles\Java\jdk1.6.0\u 31

较新版本还部署了一个单独的JRE:

C:\ProgramFiles\Java\jre6

否则,可能会导致日志中出现以下异常:

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
要重新生成私钥和CSR,可以使用以下命令:

$ openssl req -new -newkey rsa:2048  -nodes -keyout private.key -out signing request.csr -config openssl.conf
是否可以使用keytool或等效工具重新生成.JKS密钥库中的私钥

是的,但是重新生成私钥和CSR。CSR将提交给CA,CA将为您提供新的公钥

您可以随时使用以下命令重新导入密钥库:

$ openssl req -new -newkey rsa:2048  -nodes -keyout private.key -out signing request.csr -config openssl.conf
对于较新的JDK版本,请确保同时将证书导入两个路径:

C:\ProgramFiles\Java\jdk1.6.0\u 31

较新版本还部署了一个单独的JRE:

C:\ProgramFiles\Java\jre6

否则,可能会导致日志中出现以下异常:

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
要重新生成私钥和CSR,可以使用以下命令:

$ openssl req -new -newkey rsa:2048  -nodes -keyout private.key -out signing request.csr -config openssl.conf

不,这就是非对称加密的全部要点:当只知道CSR和证书中包含的公钥时,不可能生成私钥

如果只能从CSR或证书重新生成私钥,则任何人都可以模拟已向其颁发证书的实体

如果您丢失了私钥,您只需创建一个新的密钥对,提交一个新的CSR并获得一个新证书。一些CA允许在初始证书的有效期内,作为其合同的一部分,免费进行此类密钥更新

编辑:只是为了澄清什么是企业社会责任

要申请X.509证书,您必须:

生成公钥/私钥对。从本质上讲,公钥可以公开分发,因为至少在不合理的时间内获取私钥是不够的。 将该公钥连同您的身份信息提交给证书颁发机构。这可以通过以下方式实现: 证书签名请求CSR,PKCS10,其中包含您的公钥和您希望包含在证书中的数据,例如您想要的主题DN。虽然与证书中的数据非常相似,但CA应该主要使用这些数据来识别请求本身,因为CA正确地执行其工作应该检查他们在证书中放入的内容,而不仅仅是盲目地将CSR转换为证书。CSR本身使用与证书中的公钥匹配的私钥进行签名。它实际上非常类似于没有颁发者信息和有效期的自签名X.509证书,但不是一个。 用于浏览器内证书应用程序的SPKAC或CRMF。 然后,CA接受此CSR或同等证书,并在此过程之外进行必要的验证,以检查它希望嵌入到您的证书中的信息,并通过使用自己的私钥对证书进行签名来颁发证书。它有效地证明了从CSR中提取的公钥与证书中嵌入的信息(例如,您的姓名和/或此证书所针对的域名)之间的绑定。它会将此证书发回给您。 然后,您必须将此证书与与其公钥匹配的私钥一起使用。有些工具使用单独的文件来实现这一点,还可以根据密钥库中的私钥条目导入证书


拥有没有私钥的CSR或证书是没有用的。您可以很容易地再次创建一个新的CSR,但是您还需要创建一个新的密钥对。CSR最重要的部分是公钥,并且要有匹配的私钥。否则,您可以放弃CSR。

不,这就是非对称加密的全部意义:当只知道CSR和证书中包含的公钥时,不可能生成私钥

如果只能从CSR或证书重新生成私钥,则任何人都可以模拟已向其颁发证书的实体

如果您丢失了私钥,您只需创建一个新的密钥对,提交一个新的CSR并获得一个新证书。一些CA允许这种re-k 在初始证书有效期内,作为合同的一部分免费观看

编辑:只是为了澄清什么是企业社会责任

要申请X.509证书,您必须:

生成公钥/私钥对。从本质上讲,公钥可以公开分发,因为至少在不合理的时间内获取私钥是不够的。 将该公钥连同您的身份信息提交给证书颁发机构。这可以通过以下方式实现: 证书签名请求CSR,PKCS10,其中包含您的公钥和您希望包含在证书中的数据,例如您想要的主题DN。虽然与证书中的数据非常相似,但CA应该主要使用这些数据来识别请求本身,因为CA正确地执行其工作应该检查他们在证书中放入的内容,而不仅仅是盲目地将CSR转换为证书。CSR本身使用与证书中的公钥匹配的私钥进行签名。它实际上非常类似于没有颁发者信息和有效期的自签名X.509证书,但不是一个。 用于浏览器内证书应用程序的SPKAC或CRMF。 然后,CA接受此CSR或同等证书,并在此过程之外进行必要的验证,以检查它希望嵌入到您的证书中的信息,并通过使用自己的私钥对证书进行签名来颁发证书。它有效地证明了从CSR中提取的公钥与证书中嵌入的信息(例如,您的姓名和/或此证书所针对的域名)之间的绑定。它会将此证书发回给您。 然后,您必须将此证书与与其公钥匹配的私钥一起使用。有些工具使用单独的文件来实现这一点,还可以根据密钥库中的私钥条目导入证书


拥有没有私钥的CSR或证书是没有用的。您可以很容易地再次创建一个新的CSR,但是您还需要创建一个新的密钥对。CSR最重要的部分是公钥,并且要有匹配的私钥。否则您可以放弃CSR。

我也遇到了同样的问题,我的私钥被意外地从密钥库中删除,只有一种方法可以恢复它:用备份替换密钥库文件*.jks。因此,我建议始终使用与SSL相关的所有文件进行备份,如果您错误地删除了密钥库中的任何内容,请使用旧文件替换该文件。

我也遇到了同样的问题,我的私钥被意外地从密钥库中删除,只有一种方法可以恢复它:用备份替换密钥库文件*.jks。因此,我建议始终使用与SSL相关的所有文件进行备份,如果您错误地删除了密钥库中的任何内容,请使用旧文件替换该文件。

CSR本身与证书一样,包含公钥,而不是私钥。CSR是证书签名请求。您在生成公钥/私钥对之后,作为证书的申请者生成它。CSR本身不涉及链,只涉及CA颁发的最终证书。您不需要CSR来生成私钥,相反,您需要私钥来生成CSR,因为它是用私钥签名的。我为我们的PKI一起生成了密钥:$openssl req-new-newkey rsa:2048-nodes-keyout private.key-out signing request.CSR-config openssl.conf。两人之间没有交流。CSR提供给CA,CA提供中间证书和根证书。这是因为req-newkey一次执行两个操作:密钥对生成和后续CSR生成。仅使用CSR文件不会帮助您获取丢失的私钥文件。你当然不能使用从最初的CSR中获得的证书。是的,我在回顾我的笔记时意识到了这一点。布鲁诺是对的,你不会从CSR获得新的私钥。你必须重新生成一个新的PK和CSR。然后,您应该能够向CA重新提交新的CSR。CSR本身与证书一样,包含公钥,而不是私钥。CSR是证书签名请求。您在生成公钥/私钥对之后,作为证书的申请者生成它。CSR本身不涉及链,只涉及CA颁发的最终证书。您不需要CSR来生成私钥,相反,您需要私钥来生成CSR,因为它是用私钥签名的。我为我们的PKI一起生成了密钥:$openssl req-new-newkey rsa:2048-nodes-keyout private.key-out signing request.CSR-config openssl.conf。两人之间没有交流。CSR提供给CA,CA提供中间证书和根证书。这是因为req-newkey一次执行两个操作:密钥对生成和后续CSR生成。仅拥有CSR文件不会帮助您获得
丢失的私钥文件。你当然不能使用从最初的CSR中获得的证书。是的,我在回顾我的笔记时意识到了这一点。布鲁诺是对的,你不会从CSR获得新的私钥。你必须重新生成一个新的PK和CSR。然后,您应该能够将新的CSR重新提交给CA。感谢Bruno-因此,我假设您仍然拥有用于生成私钥的原始密钥库是不相关的?如果您删除了密钥库中的私钥条目,那就太晚了。不过,我会再次检查私钥是否真的不再存在。一般来说,从为证书请求生成密钥对的那一刻起,保留密钥库/私钥的备份。顺便说一下,如果必须使用证书链,。感谢Bruno-因此,我假设仍然拥有用于生成私钥的原始密钥存储库是不相关的?如果您已删除密钥存储库中的私钥条目,则为时已晚。不过,我会再次检查私钥是否真的不再存在。一般来说,从为证书请求生成密钥对的那一刻起,保留密钥库/私钥的备份。