在大量计算机上续订SSL证书

在大量计算机上续订SSL证书,ssl,certificate,multi-tier,Ssl,Certificate,Multi Tier,我在客户机-服务器应用程序中使用SSL证书;客户端和服务器都在使用即将过期的2个证书。通常,您只需要用新的证书替换证书,但由于客户端数量巨大,这不可能立即发生。 因此,如果只更新服务器和部分客户端,其余客户端将无法再进行身份验证 一个快速修复方法是用一个简单地忽略证书到期日期的版本来替换二进制文件;客户机的更新可以按顺序进行,只要在证书过期之前完成即可 我想到的长期解决方案是: 使用Puppet在客户端上推送新证书 不幸的是,这是不可行的,因为并非所有的客户都将通过Puppet进行管理 使用

我在客户机-服务器应用程序中使用SSL证书;客户端和服务器都在使用即将过期的2个证书。通常,您只需要用新的证书替换证书,但由于客户端数量巨大,这不可能立即发生。 因此,如果只更新服务器和部分客户端,其余客户端将无法再进行身份验证

一个快速修复方法是用一个简单地忽略证书到期日期的版本来替换二进制文件;客户机的更新可以按顺序进行,只要在证书过期之前完成即可

我想到的长期解决方案是:

  • 使用Puppet在客户端上推送新证书

    • 不幸的是,这是不可行的,因为并非所有的客户都将通过Puppet进行管理
  • 使用第二组证书

    • 如果第一组已过期,请使用第二组
    • 通过这种方式,服务器将拥有新证书,一部分客户端将拥有新证书,其余客户端将拥有旧证书,但一切正常
  • 如果当前证书已过期,客户端将从服务器请求新证书


  • 还有其他解决方案吗?

    我假设您将SSL证书用于在线SSL连接,如HTTPS或SFTP

    最大的问题是:您是否仍然信任并希望使用服务器端密钥!如果是这样的话,您可以使用旧密钥重新颁发具有新过期日期的服务器证书,从而延长生存期。问题是,您是否仍然信任旧密钥,或者是否应该替换它。老客户可能仍会在此时与您连接。。您仍在使用相同的公钥/私钥对,只是为其创建了一个新的“终身版本”证书。(这就是大多数公共服务器所做的…)

    在服务器端为不同的密钥使用两组活动SSL证书并不是真正可行的,而且只有在您能够很好地控制客户端的握手过程并且服务器应用程序支持它的情况下,才有可能。问题在于,在SSL协商期间,服务器必须首先发送其证书,并且在ClientHello期间,它可能从客户端获得的唯一指示是服务器名扩展。(假设客户机实际发送了一个)。否则,服务器在另一方将支持或不支持的方面“不知所措”。(还有一些其他扩展可能有助于指示受支持的CA证书,但您的客户端应该支持这些扩展)

    第一种方法对于支持它的客户来说是最实用的。只需更新他们的证书(可能还有密钥)并推送即可。这些你都做完了

    对于其他人来说,更新客户端软件并确保他们生成新密钥,并在需要时(或提前)从服务器请求新证书可能是最好的解决方案