SSL 生成问题

SSL 生成问题

我在哪里生成 SSL 证书有关系吗?我正在使用 godaddy 创建证书,他们要求提供 CSR。我在本地开发系统上生成 CSR 有关系吗?还是我需要在生产服务器上生成 CSR?

如果我可以在本地进行:1. 是否有任何证书文件需要备份?2. 我需要将哪些文件传输到生产服务器?

答案1

您可以在任何地方生成 RSA 密钥。这将生成一个私钥/公钥对。始终跟踪此私钥的位置-- 您可能希望(读作:应该)使用密码保护/加密它。OpenSSL 提供了此功能。

我喜欢把它看作是一对私钥/公钥。签名过程只是向公钥添加了更多信息。一旦你生成了企业社会责任,您现在可以暂时锁定您的私钥。CSR 是您的公钥,加上您希望由 CA 签名的信息,例如您的姓名、国家/地区、域名等,所有这些都使用您的私钥签名。

CA 会向您发回您的公钥证书,以及他们认为“是的,我们将签署这部分”的信息,以及他们用私钥签名的证书(现在可以通过他们的公钥进行验证)。

现在你有了一把私钥(锁定)+一把公钥(带有签名和额外信息)。这仍然与“私钥-公钥”的思想相辅相成。

现在,无论您是在开发服务器、生产服务器还是任何地方,您都可以将私钥 + 公钥(证书)复制到您的应用程序服务器。

笔记:我通常在笔记本电脑上生成私钥,断开网络连接,直到私钥安全为止。我不知道我的 Web 服务器内部正在进行什么日志记录或备份,但除非我可以信任生成密钥的平台,否则我应该认为它可能已受到威胁。

在您的服务器(大概是 Web 服务器?)上,您需要配置您的 SSL 应用程序以指向您的公钥和私钥,如果您的私钥受密码保护,您将需要以某种方式向应用程序启动提供密码。

某些应用程序需要捆绑的 PEM 文件,其中包含您的证书、私钥以及与证书上的签名相对应的任何公共证书。您可以把这些捆起来如果你拥有所有的碎片。

答案2

在大多数 *nix 上使用 OpenSSL 时,从哪台机器生成 CSR(或证书)并不重要,因为它只是一个 x.509 编码的文本文件。安装证书通常很简单,只需将证书/密钥文件复制到机器上并将配置指向它们即可。

我不是 Windows 用户,但我的理解是,生成 CSR 的工具必须在将使用证书的机器上运行 - 证书以有趣的 pkcs12 编码文件的形式存储在某处。但是,证书(使用 CSR)仍然可以在任何地方生成,因为它只是一个导入的文本文件。)

答案3

由于您可以将密钥和证书从一台服务器迁移到另一台服务器,因此不存在硬件依赖性,例如,您可以在任何您喜欢的地方生成它们。

对于操作你需要

  • 私钥,你需要好好保护它,并且它不应该在任何机器上公开(如果它在你的开发机器上可用并且留在那里,这是很危险的)
  • 您获得的证书,就您而言,来自 godaddy。

对于 Apache,我甚至将两者粘贴到同一个文件中以方便使用。由于它们有自己的标头(基本上是编码的 ascii-gobbledigoop)信息,因此您只需将此文件名作为 SSLCertificateFile 和 SSLCertificateKeyFile 提供给 Apache。两者都是必需的,我们的认证公司提供证书的无限制下载。

相关内容