使用 SSL 证书进行身份验证 —— 常见问题

使用 SSL 证书进行身份验证 —— 常见问题

使用证书的 SSL 客户端身份验证——这是一个复杂的主题,我认为我已经学到了足够多的知识,可以使其变得更加复杂。

我的基本理解是:公钥和私钥由证书颁发机构生成。此信息可以保存在“证书”中,然后由客户端用于身份验证。

为什么可以拥有没有私钥的证书?我知道,如果从 Windows 证书存储中导出证书,则可以在不使用私钥的情况下导出它。没有私钥的证书如何使用?我一直认为,如果您要将其传输到另一台 PC/设备上使用,则需要两者。

如果已经知道公钥和 CA,是否可以随时请求私钥?

答案1

公钥和私钥由证书颁发机构生成。

您可以选择允许证书颁发机构为您生成私钥,但您不必这样做。您可以在自己的系统上生成私钥,然后向证书颁发机构提交证书签名请求。证书颁发机构永远不需要知道您的私钥。如果您真的对安全非常担心,您不应该让他们为您生成私钥。

此信息可以保存在“证书”中,然后由客户端用于身份验证。为什么可以拥有没有私钥的证书?

为了验证您的密钥是否有效,服务要么需要信任生成您的证书的证书颁发机构的根密钥,要么需要您的证书副本以及密钥的公共部分。验证您的身份的服务不需要您的私钥。

没有私钥的证书如何使用?

有些服务可能不想信任 CA 颁发的每个密钥。因此,他们可能希望保存密钥的公共版本,以便他们知道您就是您。当然,如果他们相信 CA 会将有效信息放入主题中,那么

如果已经知道公钥和 CA,是否可以随时请求私钥?

如果您只有公钥,那么永远不可能检索私钥。

如果您允许 CA 为您生成私钥,而他们将私钥保存在自己的系统上,并且安全性较弱,我猜 CA 可能会受到攻击,私钥可能会被检索。密钥的公共部分将包含有关 CA 的信息。不过,这些似乎不太可能。

相关内容