Alcune autorità di certificazione (come Let's Encrypt) autenticano che il client controlla il server dicendoti di mettere una stringa segreta in un file ben noto sul tuo server.
Quindi va
CA -> You (qwerty...)
You -> Server (qwerty...)
CA --Verifies-> Server
Ma cosa succede se qualcuno MITM la CA ?
Ad esempio, cosa succede se Chuck è riuscito a prendere il controllo del filo tra la CA e il Server. Richiede un certificato per veryimportantwebsite.com (che non controlla). La CA dice "Ok. Metti" qwerty "in $ WELLKNOWNFILE". Non può che (poiché non controlla il server), ma cosa può fare quando la CA si collega a http: //veryimportantwebsite.com/$WELLKNOWNFILE, risponde con " qwerty".
La CA dice "Ok, firmerò la tua chiave pubblica".
Ora, dirai, perché la CA non può connettersi con HTTPS? Perché stai mettendo il carrello davanti ai buoi. La CA non sa (e non può sapere) che veryimportantwebsite.com ha già un certificato HTTPS (poiché il MITM può bloccare la porta 443).