我知道,为了使 SSL 握手成功,主机名验证必不可少,出于安全原因(即 MiTM 攻击),主机名验证也至关重要。也就是说,AWS 会自动为 EC2 实例分配公共 DNS 名称,并且公司通常希望使用与其公司更相关的 CN(即 dev.contoso.com)为 Web 服务生成证书。客户端将通过 dev.contoso.com 访问此服务。
如果是这样的话,我的理解是,在 SSL 握手中,EC2 会提供一个名为 dev.contoso.com 的证书,但实际的服务器名称将是 ec2-XX-XXX-XX-XX.us-west-2.compute.amazonaws.com 这样的格式。这会导致主机名验证失败……对吗?即使服务器是由客户端已经信任的 CA 签名的。
这里正确的解决方案是使用 SAN 并简单地在证书中指定所需的主机名作为备用名称,还是有更可取的解决方案。如果我错了,请纠正我对这个过程的理解。