Am mai călcat pe această groapă înainte. Am uitat cum să exersez, dar încă îmi amintesc acest principiu. Explică aproximativ:
Pachetul de instalare al browserului stochează unele dintre certificatele rădăcină (cheile publice) în care are încredere.
Pentru securitate, emițătorii de certificate stochează de obicei cheile private corespunzătoare acestor certificate rădăcină într-un seif complet deconectat. Aceste chei private rădăcină sunt folosite în vault pentru a emite unele certificate "intermediare", iar cheile private ale acestor certificate intermediare au autoritatea de a emite certificatul de nivel următor. Aceste chei private intermediare sunt instalate pe servere online pentru a câștiga bani prin emiterea de certificate site. Odată ce aceste servere sunt sparte, editorul poate emite un ordin de revocare folosind cheia privată a certificatului rădăcină, izolată fizic, din seif, pentru a elimina încrederea acestor certificate intermediare fără a fi nevoie să nu aibă încredere totală în certificatul rădăcină al editorului. Semnează un nou certificat intermediar de emitere și vei fi un om bun care poate face bani.
Iată întrebarea.
Browserul recunoaște doar certificatul rădăcină. Pentru certificarea certificatului intermediar, tu (site-ul) trebuie să emiti propriul certificat.
Un site HTTPS configurat corect ar trebui să includă întregul lanț de certificate în certificat. De exemplu, folosește comanda openssl s_client -connect www.wosign.com:443 pentru a vizualiza propria configurație a site-ului Wosign. Restul conținutului poate fi ignorat, doar uită-te la paragraful Certificate chain: --- Lanț de certificate 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.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Private Organization/serialNumber=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\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\xE8\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=Autoritatea de Certificare WoSign 2 s:/C=CN/O=WoSign CA Limited/CN=Autoritatea de Certificare a WoSign i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority ---
0, 1 și 2 sunt numerele de serie ale fiecărui nivel de certificat din lanțul de certificate. 0 este certificatul folosit de site-ul care trebuie verificat. CN-ul său ar trebui să corespundă cu numele de domeniul site-ului. După fiecare număr de serie, linia care începe cu s se referă la certificat, iar linia care începe cu i se referă la cine a emis certificatul.
Se poate observa că CN-ul lui 0 conține un nume de domeniu chinezesc suspectat și un domeniu în limba engleză www.wosign.com. Este emis de WoSign CA Limited/CN=WoSign Class 4 EV Server CA.
Un certificat de 1 este emitentul de 0. 1 este emis printr-un alt certificat, Autoritatea de Certificare WoSign. Să privim la următorul nivel, 2. Se spune că Autoritatea de Certificare a WoSign este emisă de StartCom (haha, se pare că este un subcontractor!). )
După ce am privit la un astfel de nivel, browserul spune: ah, știu emițătorul lui 2, și este menționat în pachetul de instalare, StartCom. Semnătura și validarea corecte, deci încredere 2. Apoi ar trebui să ai încredere și în 1 emis de 2 și 0 emis de 1. Așadar, acest site poate fi de încredere.
--
Totuși, dacă site-ul este configurat să conțină doar pe el însuși în fișierul CRT și nu un lanț de certificate suficient de complet pentru a fi verificat de datele încorporate ale browserului, acesta poate fi respins de către browser. Cum ar fi openssl s_client -conectează-te touko.moe:443 --- Lanț de certificate 0 s:/CN=touko.moe i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Certificat SSL gratuit G2 --- Există doar 0 într-un singur grup. Descriere Touko.moe din linia s este emis de WoSign CA Free SSL Certificate G2 în linia i. A dispărut.
Acesta este cel mai uimitor lucru legat de această capcană: nu este întotdeauna adevărat dacă browserul nu verifică în acest moment. Există 2 situații: R. Nu am mai văzut asta de când a fost instalat browserul. Apoi validarea eșuează. B. Dacă browserul a văzut și verificat i înainte, atunci verificarea va fi reușită.
De obicei, administratorul va accesa site-ul https al emitentului certificatului pentru a cumpăra certificatul, iar browserul îl va verifica, apoi va stoca în cache toate certificatele intermediare verificate cu succes, economisind astfel timp pe viitor. Când administratorul (din greșeală) și-a configurat site-ul și a încercat să răsfoiască testul, nu a întâmpinat nicio problemă. Pentru că browserul lui deja recunoaște acest certificat intermediar.
Totuși, mulți utilizatori s-ar putea să nu fi vizitat alte site-uri web configurate corespunzător emise de acest certificat intermediar. Prin urmare, validarea eșuează pentru că nu poate găsi un emițător de încredere.
Este comparabil cu controlul emisiilor de evacuare al vehiculelor diesel Volkswagen. Totul era în regulă când am verificat. De îndată ce ies afară, pun otravă.
EDITARE: Cum să repar ...... Probabil este să adaugi setarea SSLCertificateChainFile la configurarea serverului și să folosești fișierul bundle oferit de site-ul emitentului certificatului (fișierul conține o mulțime de certificate intermediare pentru a stabili legătura dintre certificatul tău și un certificat cu încredere ridicată).
|