Le root CA non firmano direttamente i certificati dei server, ma lo fanno tramite certificati intermedi. Il client conosce solo la root presente nel suo trust store. Per costruire la catena, il server deve inviare il proprio certificato più tutti gli intermedi.
Con Let's Encrypt il file giusto è fullchain.pem, non cert.pem. In nginx la catena completa va in ssl_certificate, in Apache dalla 2.4.8 sempre in SSLCertificateFile.
Un intermedio mancante spesso non si nota nel browser desktop, che scarica o ha in cache i certificati mancanti. App Android, curl, applicazioni Java e mail server invece falliscono con unable to get local issuer certificate.
Esempio
openssl s_client -connect example.com:443 -servername example.com -showcerts