I am building web applications for my customer's company. At the server side, there will be 2 kinds of server to server network communication.
- Separated REST API servers making requests among each other.
- Communication from application load balancers (AWS ALB specifically) to their auto-scaling EC2 instances.
Currently all of these communications use HTTP protocol. Only the user-facing nodes (such as the load balancer or the web server reverse proxy) will serve HTTPS with valid certificates.
The customer ask us to change them all to HTTPS as thet believe that it is the modern best practice to always use HTTPS instead of HTTP anywhere.
I would like to dispute with the customer but I am no security expert. Please help review my understanding below and correct me if I am wrong.
In my view, I think the purpose of HTTPS protocol is for being a trusted channel in an untrusted environment (such as the Internet). So I cannot see any benefit of changing the already trusted channel to HTTPS. Further more, having to install certificates to all servers make it difficult to maintain, chances are, the customer will find their application servers broken someday in the future because some server has certificate expired and no one know.
Another problem, if we have to config all the application server, apache for example, behind the load balance to serve HTTPS, then what is the
ServerName to put inside the
VirtualHost? Currently we have no problem using the domain name such as
my-website.example.com for HTTP
VirtualHost. But if it were to be HTTPS we have to install certificate of
my-website.example.com to all instances behind the load-balancer? I think it's weird because then we have many servers claiming to be