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