我正在为非技术客户开发一个应用程序,该应用程序将后端外包给了另一个开发人员。我们将在数周内以7种不同品牌的应用程序启动该应用程序。每个应用程序都是完全相同的,但不包含API端点所在的域(由IIS托管)。
作为安全性的一部分,我们在连接到API时会验证SSL证书,并确保API服务器返回的密钥与它的硬编码版本匹配,以防止中间人攻击我们的REST调用。现在,我们可以在当前服务器上使用此功能(将推出7个服务器中的1个)。
我们已要求后端人员为其余6个站点提供证书,以便我们可以使用期望的密钥来部署应用程序。但是,他们声称由于他们将在接下来的几周内分别部署这些站点,因此每次他们将一个新的新站点上线时,他们表示他们正在“更新SSL证书”,因为它们“在SNI上使用SNI服务器,因此每次添加新站点时,证书都会更改,并且对现有站点的硬编码验证将中断。”
现在,尽管我不是虚拟用户,但我也不是服务器管理员,只有99.9%的人可以确保支持服务器上其他证书的SNI配置不会对已经为该服务器托管的当前证书产生任何影响。现有域。结果,我想明确确认我们将作为SSL身份验证的一部分验证的证书密钥不会随着SNI配置的每个修订版而改变。后端开发人员从本质上拒绝了我们,声称我们偏执狂,并且“超出了要求的范围”,并且不期望“与主要参与者提供的安全性相同”(正如我提到的,任何体面的商业应用程序都可以验证其连接性)。
是否有人能够确认(或纠正)我对与证书相关的SNI的理解,主要是因为当他们将新站点上线时,对SNI的更改对当前站点的现有证书影响为0? / p>
编辑:虽然使用多域证书将重新生成密钥,但我们可以假设,现在可以在域联机之前生成/重新发行多域证书。是否受SNI配置影响的问题仍然存在。
答案 0 :(得分:0)
“更新SSL证书”是必需的,因为它们是“在服务器上使用SNI,因此,每次添加新站点时,证书都会更改,并且对现有站点的硬编码验证将中断”。
这是一个奇怪的论点。 SNI的要点是,它们可以在同一IP地址上拥有多个站点(域),每个站点都有自己的证书。如果他们添加新站点,则只需要为新域创建一个新证书,所有其他证书将继续起作用:使用SNI的客户端将告诉它要访问的站点,然后服务器可以选择适当的证书。如果他们不能依靠SNI,那么他们将不得不使用覆盖同一IP地址上所有站点的证书。
因此,尽管它们可能具有某些需要这种重新颁发证书的过程,但这并不是因为使用SNI而必须的,而仅仅是因为他们以这种方式设计了过程。