我在哪里生成 SSL 证书有关系吗?我正在与 godaddy 创建一个证书,他们正在要求一个 CSR。我是在本地开发系统上生成 CSR 还是需要在生产服务器上生成 CSR 是否重要?
如果我可以在本地进行: 1. 我应该备份任何证书文件吗?2. 我需要将哪些文件传输到生产服务器?
我在哪里生成 SSL 证书有关系吗?我正在与 godaddy 创建一个证书,他们正在要求一个 CSR。我是在本地开发系统上生成 CSR 还是需要在生产服务器上生成 CSR 是否重要?
如果我可以在本地进行: 1. 我应该备份任何证书文件吗?2. 我需要将哪些文件传输到生产服务器?
在使用 OpenSSL 时的大多数 *nixes 下,您从哪台机器生成 CSR(或证书)并不重要,因为它只是一个 x.509 编码的文本文件。安装证书通常就像将证书/密钥文件复制到机器上并将配置指向它们一样简单。
我不是 Windows 人,但我的理解是生成 CSR 的工具必须在证书将用于的机器上运行 - 证书作为有趣的 pkcs12 编码文件存储在某处。但是,证书(使用 CSR)仍然可以在任何地方生成,因为它只是一个导入的文本文件。)
您可以在任何地方生成 RSA 密钥。这会产生一个私钥/公钥对。始终跟踪此私钥的位置——您可能希望(阅读:应该)密码保护/加密它。OpenSSL 提供了这个功能。
我喜欢总是根据配对的私钥/公钥来考虑它。签名过程只是将更多信息添加到公钥中。生成CSR后,您现在可以锁定您的私钥。CSR 是您的公钥,加上您希望由 CA 签名的信息,例如您的姓名、国家、也许是域名等,所有这些都使用您的私钥签名。
CA 向您发回您的公钥证书,以及他们认为“是的,我们将签署这部分”的信息,以及他们使用私钥的签名(现在可以通过他们的公钥验证)。
现在你有一个私钥(锁定)+一个公钥(带有签名和额外信息)。这仍然与“私钥-公钥”的思想密切相关。
现在,无论您是在开发服务器上,还是生产服务器上,或者在任何地方,您都可以将私钥 + 公钥(证书)复制到您的应用程序服务器上。
注意:我通常在我的笔记本电脑上生成我的私钥,与网络断开连接,直到私钥安全为止。我不知道在我的 Web 服务器中正在进行什么日志记录或备份,但除非我可以信任我正在生成密钥的平台,否则我应该认为它可能受到损害。
在您的服务器(大概是 Web 服务器?)上,您需要将 SSL 应用程序配置为指向您的公钥和私钥,如果您的私钥受密码保护,您需要以某种方式为应用程序启动提供密码.
某些应用程序将需要一个捆绑的 PEM 文件,其中包含您的证书、您的私钥以及与您的证书上的签名相对应的任何公共证书。如果你有所有的东西,你可以把它们捆绑起来。
由于您可以将密钥和证书从一台服务器迁移到另一台服务器,因此没有硬件依赖性,例如,您可以在任何您喜欢的地方生成它们。
对于您需要的操作
使用 Apache,为了方便起见,我什至将两者粘贴到同一个文件中。由于它们有自己的标头(基本上是编码为 ascii-gobbledigoop)的信息,因此您只需将此文件名作为 SSLCertificateFile 和 SSLCertificateKeyFile 提供给 apache。两者都是必需的,我们的认证公司提供无限下载证书。