Come può funzionare un certificato SSL solo per alcuni client?


11

Il mio provider di hosting ha recentemente rilasciato e reinstallato un certificato SSL per il mio dominio, dopo che hanno lasciato scadere per errore quello vecchio.

Ora sono in grado di navigare di nuovo sul sito Web tramite HTTPS, così come il mio host, così come molti altri utenti.

Tuttavia, alcuni utenti (almeno una dozzina su centinaia) stanno ancora ricevendo Your connection is not securemessaggi di errore su diversi browser e piattaforme. (È difficile diagnosticare un problema che non riesco a riprodurre.)

Comprendo che browser diversi utilizzano elenchi diversi di autorità di certificazione (CA.)

  1. Come mai un utente che esegue la stessa versione di Firefox (45.0.1 su OS X) riceve un SEC_ERROR_UNKNOWN_ISSUERerrore (solo per il mio sito) mentre non lo sono? Cosa lo rende possibile? Detto utente ha cancellato la cache e riavviato il suo laptop.

Ho eseguito un controllo SSL su digicert.com . Il risultato è questo:

Il certificato SSL non è attendibile

Il certificato non è firmato da un'autorità fidata (verificando con il root store di Mozilla). Se hai acquistato il certificato da un'autorità fidata, probabilmente devi solo installare uno o più certificati intermedi. Contattare il fornitore del certificato per assistenza nel fare ciò per la propria piattaforma server.

  1. Come mai sono in grado di connettermi al sito senza errori SSL se questo è il caso?

1
My hosting provider has recently re-issued and re-installed an SSL certificate for my domain, after they let the old one expire by mistake.- Come mai hai lasciato questa responsabilità nelle loro mani?
joeqwerty,

3
Solo perché non sono un amministratore di sistema, noleggio un server dedicato gestito da loro. (Per la piccola storia di base, scrivo materiale e codice per l'apprendimento delle lingue, oltre a gestire il business, quindi fare anche l'amministratore di sistema, sebbene interessante, sarebbe uno di troppi cappelli.)
Fabien Snauwaert,

7
@joeqwerty: Perché è il loro lavoro? Li sta letteralmente pagando per sistemare queste cose per lui.
Razze di leggerezza in orbita

@LightnessRacesinOrbit: è un presupposto che non ho formulato, quindi la domanda.
joeqwerty,

1
bugzilla.mozilla.org/show_bug.cgi?id=399324 è la segnalazione di bug che richiede supporto per il download automatico di certificati intermedi in Firefox. La discussione (ormai 8 anni) si riduce a "IE lo fa!" / "Al diavolo IE, la RFC dice che è opzionale!" / "Hai mai sentito parlare del principio di robustezza?" / "La configurazione del tuo server è sbagliata e dovresti sentirti male!"

Risposte:


22

La catena di certificati del certificato è incompleta. Molto probabilmente il tuo provider non è riuscito a installare alcuni certificati intermedi durante l'installazione del nuovo certificato.

La maggior parte delle volte tali certificati intermedi vengono forniti dall'autorità SSL, per fornire supporto ad alcuni browser e sistemi operativi meno recenti. Questo è il motivo per cui, mentre funziona per te, non funziona per alcuni dei tuoi clienti.

Un'utilità davvero eccezionale per verificare la presenza di problemi SSL con il tuo sito Web è il test del server SSL di SSLlabs . Come puoi vedere nel link sopra, non solo stai riscontrando un problema a catena qui, ma anche l'algoritmo di firma utilizzato per creare il tuo certificato è debole, il tuo server web è ancora vulnerabile all'attacco POODLE e supporta ancora RC4, che è anche considerato non sicuro ...

Non voglio dire nulla contro il tuo provider di server web, ma nella tua posizione li invierei per posta, che risolvono al più presto tutti questi problemi o cambiano in un altro provider ...


Grazie, è molto utile. Per pura curiosità, hai idea del perché un client su OS X e la stessa versione di Firefox ricevano un SEC_ERROR_UNKNOWN_ISSUERerrore mentre io no? Potrebbe essere la sua versione del sistema operativo è diversa?
Fabien Snauwaert,

1
@FabienSnauwaert Sì, se scorri verso il basso fino a "Simulazione della stretta di mano", il test SSLLabs proverà a simulare varie combinazioni di versioni del sistema operativo / browser. Il browser non gestisce le connessioni SSL da solo, ma si basa in parte sull'implementazione del sistema operativo. Quindi sicuramente la versione del sistema operativo fa la differenza.
s1lv3r,

3
Non è solo che i client possono avere diversi elenchi di CA. È anche possibile che alcuni client memorizzino nella cache certificati intermedi in modo tale che un sito con un certificato intermedio mancante possa funzionare se il browser ha già visitato un sito che ha configurato correttamente quel certificato intermedio.
Kasperd,

Il sito SSLlabs è uno strumento interessante. Grazie per il riferimento.
Parapluie,

12

Affinché un certificato sia attendibile, deve essere firmato da un'entità a sua volta attendibile dalla combinazione browser / sistema operativo o che a sua volta è stata firmata da tale entità. Ciò viene in genere eseguito da una CA radice attendibile che firma una CA intermedia e la CA intermedia firma il certificato. Questo crea una catena, come questa:

  1. Root CA considerato attendibile dal computer e segni
  2. CA intermedia, che firma
  3. Il certificato, che è attendibile solo a causa della catena che riconduce alla CA principale.

Il problema qui è con il certificato CA intermedio. Per assicurarsi che tutti possano convalidare la catena fino alla CA principale, il provider deve includere il certificato intermedio nella sua configurazione del server. In questo caso, non l'hanno fatto.

Il motivo per cui funziona per alcuni utenti è che hanno il certificato intermedio nel loro "negozio di fiducia". In questi casi, accetteranno il tuo certificato perché si fidano già dell'intermedio. Ma nel caso in cui i tuoi visitatori abbiano un diverso sistema operativo / browser, non hanno il certificato intermedio, quindi avrebbero bisogno di ottenerlo dal tuo server web - e il tuo server web non lo distribuisce, quindi non hanno modo di verificandolo.


Grazie, mi aiuta a vedere chiaramente il problema ora. Esiste un trucco per indurre gli utenti ad aggiungere il certificato intermedio al proprio "negozio di fiducia" in attesa che il mio host aggiusti il ​​certificato? ad esempio: visitare un altro sito SSL che si basa su di esso o così?
Fabien Snauwaert,

1
@FabienSnauwaert Purtroppo non c'è trucco. Il solo fatto di visitare un sito con lo stesso certificato intermedio non aiuta; dovranno scaricare effettivamente il certificato e aggiungerlo manualmente al proprio browser. Credo che questo particolare certificato sia incluso nei browser più recenti - funziona in Firefox 45.0.1 ma non in 43.0.4, quindi è stato incluso da qualche parte tra quelle due versioni. Quindi, se tu potessi convincere i tuoi clienti ad aggiornare i loro browser, ciò aiuterebbe.
Jenny D,

4
@JennyD I certificati intermedi vengono memorizzati nella cache dai browser moderni, quindi è probabile che visitare un sito diverso che utilizza lo stesso intermedio funzioni. Tuttavia, questo non è davvero qualcosa che uno dovrebbe chiedere ai loro utenti ... (vedi: bugzilla.mozilla.org/show_bug.cgi?id=629558 , sslmate.com/blog/post/chrome_cached_sha1_chains )
Bob

0

Se si utilizzava Pinning con chiave pubblica HTTP e il provider ha fornito un nuovo certificato, le chiavi pubbliche potrebbero essere già cambiate. Queste chiavi vengono salvate nel browser del client per il periodo specificato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.