Challengenetworking
HTTP & TLS Troubleshooting — Challenge
Take a failing HTTPS request apart layer by layer: DNS, TCP, TLS, HTTP — and know which one broke.
- Time
- 25 min
- Level
- Intermediate
- Objectives
- 4 objectives
- Cost
- Free
Before you start
You will need
- curl
- openssl
- dig
- nc
You will be able to
- Inspect a certificate chain and its expiry from the command line
- Separate a TLS failure from an HTTP failure
- Read `curl -v` output as a sequence of layers
Cost — Free
— uses public endpoints and a local container.
You are done when
0 of 4
The goal#
Achieve the same outcome as HTTP & TLS Troubleshooting, from an empty starting point, without the steps.
"The site is down." It returns a certificate error in one browser, works in another, and curl fails with something different again.
Each of those is a different layer, and the fix depends entirely on which one.
What must be true when you are done#
- You can print a site's certificate subject, issuer and expiry without a browser.
- You can state which layer failed for three different broken URLs.
- You can explain what
SSL_ERROR_SYSCALLandcertificate verify failedeach imply. - You can prove a port is reachable independently of whether TLS succeeds.
Rules#
- Do not open the guided lab until you are finished, or until the same problem has held you up for 20 minutes.
- Documentation is allowed and encouraged.
- Verify every criterion with a command whose output you can read.
If you get stuck#
- What did you expect, exactly?
- What happened instead — the error text, not a paraphrase?
- Which layer is that error from?
- What is the smallest command that proves the layer below is fine?
The concept behind it
Phase complete · 02 The application, in containers
You can now: The application runs locally in production-shaped containers, behind a reverse proxy, over TLS.
Next phase
Lab 13 of 58 on the project path