Um servidor TLS deve enviar primeiro o certificado folha e depois os intermediários (a RFC 9846 §4.5.1 permite que os demais certificados venham em qualquer ordem, mas clientes mais antigos esperam a ordem dos emissores). A raiz normalmente é omitida, porque o cliente já a tem. A falta de um intermediário é o clássico erro “funciona no meu navegador, falha no curl”: os navegadores podem buscá-lo pela URL caIssuers da AIA ou reutilizar intermediários em cache, enquanto o OpenSSL, o Go, o Java e a maioria dos clientes de API não fazem isso.
Os clientes constroem um caminho, e não apenas leem a lista: com intermediários de assinatura cruzada, podem existir vários caminhos válidos, e o verificador escolhe um que termine em uma raiz em que confia. Foi assim que o Let's Encrypt manteve dispositivos Android antigos funcionando com a assinatura cruzada da CA raiz DST Root CA X3 até 2024, e é por isso que a ordem no arquivo importa menos do que a presença de todos os certificados necessários.
Os pacotes PEM (fullchain.pem) contêm o certificado folha e os intermediários; arquivos PKCS #12 também podem levá-los. O construtor de cadeias reordena e completa uma cadeia, e o divisor de pacotes PEM separa um pacote em seus certificados.