您可以为现有证书生成私钥吗?

LaC*_*arl 2 ssl server

我从 BaltimoreCyber​​TrustRoot 获得了证书,但没有获得密钥,我是否能够为现有证书生成密钥?

Pat*_*zek 6

显然,不,您不能从现有证书中生成私钥,否则您将能够模拟基本上任何给定的 HTTPS 网站(如何?证书是公开的,您下载它并神奇地创建关联的私钥,然后您就拥有了一个经过验证的网站对于该证书名称...)

通常生成证书的工作方式如下:

  • 生成公钥/私钥,公钥用于计算包含公钥和一些元数据的 CSR 或证书签名请求
  • 您将 CSR 交给 CA
  • CA 根据 CSR 的内容返回给您一个证书,并由他们自己的私钥签名(这样,通过使用 CA 证书(具有相应的 CA 公钥),您可以验证该生成的证书确实已签名/由该特定 CA 颁发)。

所以你有私钥。

如果您遇到 CA 或中间机构为您生成所有内容的情况(这在安全性方面很差,这意味着他们拥有私钥,因此可以冒充),那么您必须要求他们向您发送证书和证书私钥!