Jeg har trådt på dette hul før. Jeg har glemt, hvordan man praktiserer, men jeg husker stadig dette princip. Forklar grovt:
Browserens installationspakke gemmer nogle af de rodcertifikater (offentlige nøgler), som den stoler på.
Af sikkerhedsmæssige årsager opbevarer certifikatudstedere normalt de private nøgler, der svarer til disse rodcertifikater, i et fuldstændig afkoblet hvælving. Disse rod-private nøgler bruges i hvelvet til at udstede nogle "mellemliggende" certifikater, og de private nøgler til disse mellemliggende certifikater har myndighed til at udstede næste niveau af certifikater. Disse mellemliggende private nøgler installeres på onlineservere for at tjene penge ved at udstede webcertifikater. Når disse servere er hacket, kan udgiveren udstede en tilbagekaldelsesordre ved hjælp af den fysisk isolerede rodcertifikat-private nøgle i hvælvingen for at eliminere tilliden til disse mellemliggende certifikater uden at skulle mistro udgiverens rodcertifikat fuldstændigt. Underskriv et nyt mellemliggende udstedelsescertifikat, og du vil være en god mand, der kan tjene penge.
Her kommer spørgsmålet.
Browseren genkender kun rodcertifikatet. For certificering af mellemniveaucertifikatet skal du (hjemmesiden) udstede dit eget certifikat.
En korrekt konfigureret HTTPS-hjemmeside bør inkludere hele certifikatkæden i certifikatet. For eksempel kan du bruge openssl s_client -connect www.wosign.com:443-kommandoen for at se Wosigns egen hjemmesidekonfiguration. Resten af indholdet kan ignoreres, se bare på afsnittet om certifikatkæden: --- Certifikatkæde 0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Private Organisation/serienummer=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA 1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA i:/C=CN/O=WoSign CA Limited/CN=Certificeringsmyndighed for WoSign 2 s:/C=CN/O=WoSign CA Limited/CN=Certificeringsmyndighed for WoSign i:/C=IL/O=StartCom Ltd./OU=Sikker Digital Certifikatsignering/CN=StartCom Certificeringsmyndighed ---
0, 1 og 2 er serienumrene for hvert certifikatniveau i certifikatkæden. 0 er certifikatet, som hjemmesiden bruger til at blive verificeret. Dets CN skal svare til domænenavnet på hjemmesiden. Efter hvert serienummer refererer linjen, der starter med s, til certifikatet, og linjen, der starter med i, til, hvem der udstedte certifikatet.
Det kan ses, at CN på 0 indeholder et formodet kinesisk domænenavn og et engelsk domæne www.wosign.com. Den udstedes af WoSign CA Limited/CN=WoSign Class 4 EV Server CA.
Et certifikat på 1 er udstederen af 0. 1 udstedes selv af et andet certifikat, WoSigns certificeringsmyndighed. Lad os se på næste niveau, 2. Der står, at WoSigns certificeringsmyndighed er udstedt af StartCom (haha, det viser sig at være en underleverandør!). )
Så efter at have set på det på et sådant niveau, siger browseren, åh, jeg kender udstederen af 2, og det nævnes i installationspakken, StartCom. Korrekt underskrift og validering, så tillid 2. Så bør du også stole på 1 udstedt af 2 og 0 udstedt af 1. Så denne hjemmeside kan stoles på.
--
Men hvis hjemmesiden er konfigureret til kun at indeholde sig selv i CRT-filen og ikke en certifikatkæde, der er tilstrækkelig komplet til at kunne verificeres af browserens indbyggede data, kan den blive afvist af browseren. Som hvad openssl s_client -connect touko.moe:443 --- Certifikatkæde 0 s:/CN=touko.moe i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Gratis SSL-certifikat G2 --- Der er kun 0 i én gruppe. Beskrivelse Touko.moe i linje s udstedes af WoSign CA Gratis SSL-certifikat G2 på linje i. Den er væk.
Det mest fantastiske ved denne faldgrube er ikke altid sandt, hvis browseren ikke verificerer på dette tidspunkt. Der er 2 situationer: A. Jeg har aldrig set dette siden browseren blev installeret. Så fejler valideringen. B. Hvis browseren har set og verificeret i før, vil verifikationen være succesfuld.
Normalt går administratoren til https-websitet for certifikatudstederen for at købe certifikatet, og browseren verificerer det og cacher derefter alle de mellemliggende certifikater, der er blevet verificeret med succes, hvilket sparer tid i fremtiden. Når administratoren (ved en fejl) konfigurerede sin hjemmeside og gik for at gennemse testen, ville han slet ikke støde på nogen problemer. Fordi hans browser allerede genkender dette mellemliggende certifikat.
Dog har mange brugere måske ikke besøgt andre korrekt konfigurerede hjemmesider udstedt af dette mellemliggende certifikat. Derfor fejler valideringen, fordi den ikke kan finde en betroet udsteder.
Den kan sammenlignes med udstødningskontrollen fra Volkswagens dieselbiler. Alt var fint, da jeg tjekkede. Så snart de kommer udenfor, putter de gift i.
REDIGERET: Sådan løser man ...... Det er sandsynligvis at tilføje SSLCertificateChainFile-indstillingen, når serveren konfigureres, og bruge bundle-filen, som certifikatudstederens hjemmeside stiller til rådighed (filen indeholder en masse mellemliggende certifikater til at etablere forbindelsen mellem dit certifikat og et høj-tillidscertifikat).
|