06-10-2015

您的私钥在哪里?

Jeremy Rowley

最近一次更新于:2020年11月

尽管证书的有效期已经缩短,但大多数IT专业人员不会每天频繁接触其TLS/SSL证书配置。许多人大约一年接触一次其密钥材料——这是他们需要更改证书的时候。有时追踪并管理这些证书和相应的密钥材料可能很困难,导致要花费许多时间去找出这些项目的存储路径。

这篇文章将帮助您找出您的私钥;要采取的步骤会因Web服务器操作系统的不同而有所不同。我们将在下文中介绍最常见的操作系统,但在此之前,让我们先解释一些有关私钥的基础知识。

什么是私钥?

所有TLS证书都需要私钥才能发挥作用。私钥是一个单独的文件,用于对服务器和所连接的客户端之间发送的数据进行加密/解密。当您使用证书签名请求(CSR)请求证书时,您——即证书所有者——就创建了私钥。为您提供证书的证书颁发机构(CA)(例如DigiCert)不会创建或拥有您的私钥。事实上,您不应该对除管理员之外的任何人授予访问此资料的权限。我们注意到,由于管理员将密钥发布到GitHub等线上存储库中导致 CA不得不吊销证书的情况有所增加。即使您认为网站没有处理敏感信息,私钥的任何暴露也都需要吊销所有相应的证书。

如果您尚未安装证书,那么您的私钥最有可能位于您生成密钥对和CSR的计算机或服务器上。在生成密钥对时,您保存了两个文件:一个包含公钥,一个包含私钥。对于OpenSSL,您可以运行命令openssl version –a来查找保存密钥文件的文件夹(默认为/usr/local/ssl)。在Windows(IIS)中,操作系统会为您管理CSR。您首先要完成请求,然后导出密钥(说明如下)。

如何找出你的私钥

如果您的证书已安装,请按照以下步骤查找这些热门操作系统的私钥文件。

Apache

您的私钥文件的位置将在主Apache配置文件中被引用,即httpd.conf或apache2. conf。指令SSLCertificateKeyFile将指定服务器上存储密钥的路径。

Apache上最热门的SSL库OpenSSL默认将私钥保存至/usr/local/ssl。您可以运行命令openssl version –a来查找OPENSSLDIR,并确认您的服务器保存密钥的文件夹。

Nginx

您将能在网站的虚拟主机文件中找到私钥的位置。导航到该网站的服务器块(默认情况下,在/var/www/目录中)。打开该网站的主配置文件并搜索ssl_certificate_key指令,该指令将提供私钥的文件路径(某些用户有单独的SSL配置文件,例如ssl.conf)。

Windows(IIS)

在Windows服务器中,操作系统会在隐藏文件夹中为您管理证书文件,但您可以通过导出包含证书和私钥的“.pfx”文件来检索私钥。

打开Microsoft Management Console(MMC)。在Console Root中展开Certificates(Local Computer)。您的服务器证书将位于Personal或WebServer子文件夹中。找到并右键单击由通用名称标识的证书,选择Export并按照向导进行操作。这将为您提供一个.pfx文件。如需详细的分步说明,请前往此处。

根据您要对私钥执行的操作,您可能需要通过转换.pfx将私钥拆分为单独的文件。如果您只是想备份密钥或将其安装到另一台Windows服务器,则其已具备正确格式。为了在Apache等其他平台上使用,您需要使用OpenSSL转换.pfx以分离.crt/.cer和.key文件。

如果您无法通过此方法找到私钥,您可以尝试下载DigiCert SSL Utility。此软件将能让您导入您的证书并自动找出您的私钥(如果私钥在该服务器上)。请注意,这是本地软件,不会将有关密钥材料的信息共享给DigiCert。DigiCert从不获取TLS证书的私钥材料,而且根存储区策略严格禁止CA托管TLS密钥(有时候文档签名和S/MIME证书会发生这种情况)。

私钥还可能在哪里?

如果您为自己的操作系统采取了这些步骤但仍然没有找到密钥,那么您可能只是找错了地方。

如果您在使用提供有效HTTPS连接的服务器,那么密钥位于该服务器的某处(或该服务器可访问此密钥),否则HTTPS连接将失败。我们只能在此处介绍默认场景的情况——您的组织可能会使用自定义配置。您可以尝试在服务器中搜索“.key”文件,或者采取安装新证书的步骤,其中应包括在某个时候指定私钥。

在某些平台上,OpenSSL会将.key文件保存到运行–req命令的同一目录中。

如果您还没有安装证书并且找不到密钥,那么它可能已经消失了。如果您创建了CSR但找不到您的密钥文件,最简单的方法是重新颁发您的证书。通过创建新的CSR重新开始——这次要确保将私钥保存到已知位置——并将证书与新密钥配对。使用DigiCert重新颁发证书始终免费。

尽管了解您的密钥材料在哪里以及如何对其进行保护对于安全性而言至关重要,但我们强烈建议您在每次订购新证书时生成新的密钥对。重复使用密钥材料是一种不受欢迎的做法,而且如果新的威胁被发现,密钥遭到泄露并导致安全框架失效,那么就会造成广泛传播的问题。生成密钥材料和CSR比以往任何时候都更容易,而且DigiCert支持频繁的密钥滚动更新,以帮助公司采用良好的安全实践。

了解PKI如何开启充满可能性的互联世界;请阅读我们的PKI电子书

UP NEXT
pki

3 Surprising Uses of PKI in Big Companies and How to Ensure They Are all Secure

5 Min

Featured Stories

07-03-2024

What is a CA’s Role in delivering digital trust?

11-21-2024

10 ways AI, quantum and trust will shape the year ahead 

11-19-2024

Why certificate automation is an absolute must