SSL证书的CSR和密钥文件生成在哪里?

我必须为通配符SSL证书创build一个CSR。 SSL提供商的一些常见问题解答说我应该在要安装证书的机器上生成CSR文件? 我的理解是,只要我稍后将文件移动到正确的位置,生成CSR或密钥文件的位置就不重要了。

所以我的问题是:SSL证书的CSR和密钥文件生成在哪里?

你的理解是正确的。 所有其他的事情是平等的,没关系; 但有皱纹。

在有问题的服务器上生成它们的一个优点是它最大限度地减less了密钥在传输中受到攻击的可能性。 只要你使用一台安全的机器来生成它们,而一个安全的方法(不受MITM攻击)将它们移动到服务器上,你就可以逃脱。 不要忘记在发电系统上安全地擦除它们,除非您故意打算保留副本并相应地进行保护。

在单独的机器上生成一个优势:通常,这将是您的桌面。 台式计算机上的熵池总是比无人值守的服务器更深,因为台式机通过键盘和鼠标线(即你)连接的随机性很大。 熵的短缺可能导致密钥生成需要很长时间,或者导致它使用/dev/urandom PRNG输出,取决于生成工具的偏执性如何,这可能导致较弱的密钥; 台式机器往往不会有这个问题。

后来编辑 :根据其他地方的讨论 ,这里有两点提出。 首先,你可以通过在你的桌面上产生一个中间的房子,例如dd if=/dev/random bs=1k count=10 of=/tmp/entropy.dat ,把复制到远程服务器上,直接或通过深化远程服务器的熵池将其提供给您的密钥生成过程。 我还没有find办法去做前者,做后者通常需要施加特权,如果你和远程服务器之间的通道不安全,而这完全是反对意见,那么也是不安全的。

其次,可预测的mjg59提出了硬件安全模块的问题 – 即,你把设备放在哪个设备里面,或者你在哪个设备上创build私钥,然后在没有任何密钥的情况下执行密钥操作。 这是一个很好的观点,但不在这个问题的范围之内。

但是,线程的更普遍的结果 – 你应该有一个精确的威胁模型,并select适当的答案 – 是一个好主意。 我的威胁模型是,我的通信渠道是安全的,但我的terminal受到智能攻击。 这意味着我将在本地生成熵密钥的SSL密钥对并分发它们。 如果事实certificate,我的模型是不准确的,我的通讯变得脆弱,我会立即知道,假设我所有的SSL密钥对都被攻破了。 如果您的威胁模型不同,则应该相应地调整您的实践。

这有点重要。

如果您在另一台机器上生成这些密钥,密钥在生成机器上,然后在服务器上很脆弱。 如果您使用受感染的机器来生成密钥,则某些virii甚至可能在将密钥移动到安全服务器之前窃取密钥。

如果您在安全的服务器上生成它们,并且只是移动CSR / cert,那么在第一种情况下,由于私钥只位于一台机器上,因此某人/某事获得私钥的机会较小。