certificate problem
Incomplete chain / missing intermediate
What's going on
Certificates are trusted through a chain: your certificate → an intermediate CA → a root the client already has. This bundle stops partway, so many clients (especially non-browser ones: curl, Java, mobile apps) can't verify it. Browsers sometimes paper over it, which is why 'it works in Chrome but not in the app'.
How to fix it
Serve the full chain: your certificate followed by the intermediate certificate(s), in order. Your CA provides the intermediates (often as 'fullchain' or 'CA bundle'). With Let's Encrypt, use fullchain.pem — not cert.pem — in the server config.
New to certificates? Start with the guide: How to read an SSL certificate.
Check your certificate for this problem
The decoder detects it automatically — locally, with nothing uploaded.
Open the certificate decoder →