Nume alternative de subiect: cum este identificat un server VPN
Un certificat de încredere poate fi totuși greșit pentru numele de gazdă al VPN-ului dumneavoastră. SAN trebuie să conțină forma de identitate pe care o verifică clientul, ca nume DNS sau adresă IP.
Clientul dumneavoastră respinge un certificat al cărui lanț se validează curat, iar eroarea spune că numele nu se potrivește. Acest mesaj nu este despre cine a semnat certificatul. Este despre extensia numelor alternative de subiect, care conține identitățile pe care certificatul le poate reprezenta, și despre dacă identitatea pe care ați configurat-o apare acolo în forma corectă. Încrederea răspunde cine l-a semnat, iar verificarea numelui răspunde cărui gazdă îi aparține.
Ce compară de fapt clientul
Clientul transformă configurația dumneavoastră într-o identitate de referință: un nume de gazdă, o adresă sau un identificator specific protocolului. Apoi caută acea identitate în certificat, aplicând regulile de potrivire ale protocolului folosit. Contează doar intrările de același tip, așa că o intrare DNS nu poate satisface o adresă, iar comparația are loc indiferent dacă cineva se uită la certificat sau nu.
Când identitatea de referință lipsește din acea extensie, verificarea eșuează chiar dacă vechiul nume comun se potrivește. Un certificat poate fi emis legal unei companii și totuși poate fi greșit pentru vpn.example.com dacă numele nu a fost inclus niciodată. Eșecul este o nepotrivire de nume, deși certificatul este autentic.
Numele DNS și adresele IP sunt intrări separate
Un profil care indică 203.0.113.10, în timp ce certificatul listează doar vpn.example.com, este respins, pentru că pachetele ajung, dar identitatea nu se potrivește. Numele DNS și adresele literale sunt stocate ca tipuri de intrare diferite, iar unul nu îl înlocuiește niciodată pe celălalt. De aceea un serviciu poate fi accesibil prin adresă și totuși inutilizabil printr-un profil care folosește acea adresă.
Metacaracterele respectă și ele propriile reguli: un metacaracter acoperă o singură etichetă, nu fiecare nume dintr-un domeniu. Comparația DNS nu ține cont de majuscule și minuscule, în timp ce alte tipuri de identificator o fac, așa că o valoare identică pe ecran poate eșua la o comparație strictă. Verificați regulile de potrivire pentru tipul de identitate folosit, în loc să comparați șirurile cu ochiul. Adăugarea unui nume în extensie este o decizie de emitere, nu ceva ce poate furniza o setare de client.
Inspectați certificatul pe care conexiunea l-a folosit efectiv
Citiți materialul prezentat de punctul final activ, nu un fișier copiat dintr-o pagină de administrare. Un balansator de încărcare sau o instanță de înlocuire poate prezenta altceva decât certificatul încărcat acum câteva luni, iar acea diferență este invizibilă într-o consolă.
openssl s_client -connect vpn.example.com:443 -showcerts </dev/null | openssl x509 -noout -text
Blocul numelor alternative de subiect, lanțul emitentului și perioada de valabilitate aparțin aceleiași citiri, pentru că o nepotrivire de nume și o expirare produc erori diferite. Comparați fiecare nume din acel bloc cu identitatea configurată în profil, caracter cu caracter, și notați de ce tip este. Repetarea comenzii pe forma de adresă a punctului final arată dacă certificatul acoperă ambele identități sau doar una. O afișare prietenoasă a subiectului într-o consolă de administrare nu este un rezultat de validare și nu spune nimic despre numele pe care le conține extensia.
Numele comun nu este sursa modernă de adevăr
Browserele și majoritatea bibliotecilor TLS ignoră acum numele comun pentru potrivirea numelui de gazdă și consultă extensia. Unele clienți VPN încă mai compară mai întâi numele comun sau recurg la el când extensia lipsește, și astfel un certificat poate trece într-un browser și eșua într-un client. Aceeași verificare de nume poate trece pe o platformă și eșua pe alta fără ca certificatul să se schimbe deloc.
Aflați ce câmp citește clientul dumneavoastră înainte de a decide că certificatul este greșit. Doi clienți pe același punct final pot fi în dezacord, iar dezacordul este informație despre client, nu despre certificat.
Reparați emiterea sau profilul, nu verificarea
Când un profil a fost construit în jurul unui alias, fie îl îndreptați către numele de gazdă documentat, fie reemiteți certificatul pentru alias și îl implementați într-o fereastră planificată. A reduce la tăcere avertismentul nu este o a treia opțiune, pentru că verificarea este singurul pas care leagă un certificat semnat de acest gazdă anume. Eliminarea ei înseamnă că orice certificat de la aceeași autoritate poate lua locul serverului pe care voiați să îl atingeți.
Reînnoirea ar trebui să păstreze numele și scopul intenționate, nu doar să mute data de expirare înainte. O reînnoire care pierde un nume este o nouă întrerupere programată pentru următoarea repornire, și de obicei apare fără avertisment pentru că certificatul vechi era încă valid când s-a făcut schimbarea.
Înregistrați identitatea așteptată, numele prezentate și lanțul care le-a semnat. Acea înregistrare transformă următoarea reînnoire într-o comparație, nu într-o investigație. Definiția extensiei este în RFC 5280 dacă trebuie să verificați o emitere anume.