HTTP works, HTTPS does not, on AWS
Spent half a day figuring the issue on why all HTTP requests works, but HTTPS does not. Writing this Post on my journey from Oh Man!! to Wow Man!!
I am on AWS with following configuration
- EC2 instance with application code
- ELB load balancer
- SSL certificate from Amazon, attached to ELB
Used Postman for the request. None of the HTTP / HTTPS works. Postman returns a canned message with following troubleshooting options. Refer image
- Check server for response
- SSL connection blocked
- Cookies issue
- Request timeout
As request works fine in Browser, 1 is not applicable. Checked Server configuration and ruled out 2. 3 is not applicable. Increased timeout, but still couldn’t get it work.
Tried another Chrome REST client extension (DHC REST Client) to add variety to the test. HTTP works, HTTPS still does not work. Some progress.
Suspecting SSL Certificate, deleted it, created a new one. Attached it to the Load Balancer, but still HTTPS does not work.
Suspecting Load Balancer, deleted it, created a new one. Provisioned it, but still HTTPS does not work.
Finally, while looking at my Amazon AWS setup, started looking at rules in attached Security Group. Checked the Inbound tab, and found out that, HTTP, SSL & All TCP is allowed. However, there is no entry for HTTPS.
Created an entry for HTTPS by giving following
- Type - HTTPS
- Protocol - TCP
- Port Range - 443
- Source - 0.0.0.0/0
The HTTPS requests start working. Hope it helps.