Vai al contenuto

Certificati intermedi e catena

Il sito funziona nel browser ma un'app o un'integrazione rifiuta la connessione? Quasi sempre manca un certificato intermedio.

Il tuo certificato non è firmato direttamente dalla radice della Certification Authority, ma da un certificato intermedio. Chi si collega deve poter ricostruire la catena: il tuo certificato, l'intermedio che l'ha emesso, la radice già presente nel sistema.

Per questo il server deve inviare, insieme al tuo certificato, anche l'intermedio.

I sintomi

I browser spesso compensano un intermedio mancante, quindi il sito sembra funzionare. Altri client no, e rifiutano la connessione con errori come:

  • unable to get local issuer certificate (curl, OpenSSL, PHP);
  • PKIX path building failed (Java);
  • errori di certificato non attendibile su app mobili e dispositivi.

Verificare la catena

openssl s_client -connect www.tuodominio.it:443 \
  -servername www.tuodominio.it -showcerts

Deve mostrare almeno due certificati: il tuo e l'intermedio, con il subject dell'intermedio uguale all'issuer del tuo. In fondo, Verify return code: 0 (ok).

Correggerla

Unisci in un unico file il tuo certificato e poi l'intermedio, in quest'ordine, e indica quel file al server (vedi nginx e Apache). La radice non serve. Attenzione a usare l'intermedio giusto per il tuo certificato: è quello che riceviamo con il rilascio e ti inviamo insieme al certificato.

Non sai quale certificato scegliere?

Raccontaci cosa devi proteggere, ti consigliamo il certificato giusto e ti prepariamo un preventivo.