我们在服务器上有一组公钥和私钥以及证书。问题是,虽然公共加密工作正常,但.key
文件的密码丢失了。
因此,当尝试执行以下命令时:
openssl rsa -in the.key
它显然会要求输入密码。是否有可能以某种方式获得丢失的密码?
我们在服务器上有一组公钥和私钥以及证书。问题是,虽然公共加密工作正常,但.key
文件的密码丢失了。
因此,当尝试执行以下命令时:
openssl rsa -in the.key
它显然会要求输入密码。是否有可能以某种方式获得丢失的密码?
拥有密码短语的全部意义在于锁定任何不知道密码的人。允许它被恢复将违反原则,并允许访问您的证书的黑客恢复您的密钥。
所以不,没有这样的事情。
您应该做的是将密钥声明为颁发者丢失,以便他们撤销您的证书。然后,您必须从头开始创建一个新的。
根据您的描述,听起来服务器当前正在使用密钥,这意味着服务器“知道”密码短语。如果这是正确的并且您对服务器具有适当的访问权限,您应该能够提取它。你将如何做到这一点取决于服务器软件是什么以及它是如何设置的。
举个例子,如果您正在运行 Apache,并且它在 httpd.conf 文件中有类似这样的内容:
SSLPassPhraseDialog exec:/etc/apache2/getsslpassphrase
这意味着 Apache 将运行 /etc/apache2/getsslpassphrase 来获取密码;你也可以这样做:
sudo /etc/apache2/getsslpassphrase server.example.com:443 RSA
应该输出 server.example.com 密钥的密码。
对于其他服务器软件(或具有不同配置选项的 Apache),您必须指定详细信息。
在某些情况下,可以使用新密码恢复私钥。它将要求颁发 CA 已创建支持私钥恢复的证书。
通常不这样做,除非密钥用于加密信息,例如用于电子邮件或文件加密时。颁发 CA 应该能够告诉您是否可以恢复密钥,并帮助您使用新密码重新创建密钥(如果可以的话)。
就我们目前的知识而言,只有蛮力可用。请创建密钥的人尝试记住密码并尝试。如果这不可用,请尝试使用生成流行密码的破解程序作为密码生成器。
但是,如果密码选择得当,破解密钥的机会就会很小。