我正在为我客户的公司构建 Web 应用程序。在服务器端,将有两种服务器到服务器的网络通信。
- 相互分离的 REST API 服务器发出请求。
- 从应用程序负载均衡器(特别是 AWS ALB)到其自动扩展 EC2 实例的通信。
目前所有这些通信都使用 HTTP 协议。只有面向用户的节点(例如负载均衡器或 Web 服务器反向代理)将使用有效证书提供 HTTPS。
客户要求我们将它们全部更改为 HTTPS,因为他们认为在任何地方始终使用 HTTPS 而不是 HTTP 是现代最佳实践。
我想与客户争论,但我不是安全专家。请帮助在下面查看我的理解,如果我错了,请纠正我。
在我看来,我认为 HTTPS 协议的目的是在不受信任的环境(例如 Internet)中成为受信任的通道。所以我看不到将已经受信任的通道更改为 HTTPS 的任何好处。此外,必须为所有服务器安装证书使其难以维护,很有可能,客户将来某天会发现他们的应用程序服务器损坏,因为某些服务器的证书已过期并且没人知道。
另一个问题,如果我们必须配置所有的应用程序服务器,例如 apache,在负载均衡后面为 HTTPS 提供服务,那么在ServerName
里面放VirtualHost
什么?目前我们使用域名没有问题,例如my-website.example.com
HTTP VirtualHost
。但如果是 HTTPS,我们必须为my-website.example.com
负载均衡器后面的所有实例安装证书吗?我认为这很奇怪,因为那时我们有很多服务器声称是my-website.example.com
.