假设我已经生成了一个供 Apache 用于 SSL 的服务器密钥。服务器将处理几个通过唯一 IP(无 SNI)使用 SSL 的不同域。
我想从相同的密钥为每个域生成一个 CSR,对其进行签名,然后配置每个域以提供适当的证书。
如果所有域都托管在同一台服务器上,我是否应该为每个域生成一个服务器密钥而不是这样做?
假设我已经生成了一个供 Apache 用于 SSL 的服务器密钥。服务器将处理几个通过唯一 IP(无 SNI)使用 SSL 的不同域。
我想从相同的密钥为每个域生成一个 CSR,对其进行签名,然后配置每个域以提供适当的证书。
如果所有域都托管在同一台服务器上,我是否应该为每个域生成一个服务器密钥而不是这样做?
我可以看到您可能不想重复使用相同密钥的两个主要原因:
妥协弹性:如果私钥被泄露,并且如果您已将其重新用于多个域,那么多个域将受到影响。如果您使用单独的私钥并将每个私钥存储在单独的服务器上,那么妥协一个不会影响其他人。如果您计划在单个服务器上托管所有域,这可能无关紧要 - 但使用单独的密钥可以保留您更改托管详细信息的灵活性。
面向未来:假设某一天某个域的所有者说“我想开始自己托管该域;请给我该域的证书和私钥好吗?” 如果您为多个域重复使用相同的私钥,则不能强制使用它们。
或者类似地,也许有一天这些域中的一个会变得非常流行,并且您会想要购买多台服务器来托管它并开始在它们之间进行负载平衡。如果您重复使用了相同的私钥,那么所有这些服务器都需要接收公共私钥,并且如果任何服务器遭到破坏,所有域都会被破坏。另一方面,如果您使用单独的私钥,那么您可以为这些新服务器中的每一个仅提供一个非常流行的域的私钥副本。
这些考虑因素在您的特定情况下可能很重要,也可能无关紧要。您可以自己决定拥有单个私钥的便利优势,以及未来拥有多个私钥的灵活性。