如果SSL证书私钥是在 Linux 操作系统上使用OpenSSL 创建的,那么会作为文本文件与 .key 和 .pem 扩展名一起放置。但需要注意的是,在基于 Linux 的操作系统中,文本文件的扩展名不是强制性的,因此您的私钥可以以任何名称和扩展名放在任何地方。这使得在 Linux 操作系统中很难找到私钥。
如何在Linux各服务器平台(如Apache、Nginx、Lighttpd、Heroku等)查找SSL证书私钥?如果您知道密钥文件的全名或半名,那么您可以通过在控制台中输入以下命令来开始搜索:
sudo find / -name ‘example.key’
使用这个简单的命令,您可以找到私钥(如果它在您的服务器上可用)。代码中的“/”符号表示搜索将从根目录开始。这样,您将能够访问所有文件,并增加检索私钥的机会。
‘example.key’ 命令显示密钥的假定名称。您可以在这里写上您记得的文件名,扩展名为“.key”。如果您希望使用特定命令查找文件,请使用 *.key 命令。此命令将返回所有扩展名为 .key 的文件。
大多数时候,私钥的名称以您的域名开头。例如,如果您的域名是 example.com,那么您的密钥名称应该是“example_com.key”或“example_com.pem”。要在 Linux 操作系统中搜索私钥,请使用您的域名或您记住的控制台中的任何其他名称。
如果使用所有这些方法后仍然找不到私钥,这是找回私钥的最终方法。
在控制台中使用以下命令。
grep -r –exclude-dir=log –exclude-dir=ssh –exclude=*history -I -l -e ‘—–BEGIN PRIVATE*’ -e ‘—–BEGIN RSA* ‘ -e ‘—–BEGIN EC*’ [search_start_folder] 2> /dev/null
此命令将搜索以该表达式“—–BEGIN header”开头的文件,并将返回该文件的完整路径(如果它在您的服务器上可用)。