Plainnotes

An incomplete certificate chain that browsers hide

2026-10-29 · 3 min readNetwork

curl failed with unable to get local issuer certificate while the site opened fine in a browser. Usually that means the server sends only the leaf certificate.

Browsers cache intermediates and can fetch them via AIA, so they paper over it. Command-line clients, Java and many embedded devices cannot.

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null | grep -E '^ *[0-9] s:'

One certificate means the chain is short. In nginx, ssl_certificate must point at fullchain.pem, not cert.pem. The names look alike, nothing breaks in a browser, and the problem only shows up on the client you did not test.