Twee VPN-storingen lijken identiek vanaf de stoel van de gebruiker en vragen om tegenovergestelde oplossingen. Een naamconflict betekent dat het certificaat geldig is, maar voor iets anders is uitgegeven. Een verlopen-fout betekent dat het certificaat op dit moment niet geldig is. Geen van beide is een wachtwoordprobleem, en inloggegevens resetten is in beide gevallen het meest verspilde uur. Lees de stap die faalt voordat je iets aanraakt.

De fouttekst is de diagnose

De client vertelt welke controle faalde, zelfs wanneer het bericht kort is. Een conflict noemt de verwachte hostnaam en de naam die is gevonden. Een verlopen-fout noemt geldigheidsdatums of een tijd. Die twee zinnen wijzen naar verschillende delen van het certificaat.

Lees ze in de stap waarin ze verschijnen. Een fout tijdens de handshake is een certificaatprobleem; een fout nadat de tunnel staat is een routerings- of inlogprobleem. De stap vasthouden is wat voorkomt dat het onderzoek afdwaalt naar ongerelateerde instellingen.

Als de fout per poging verschilt, heb je een derde mogelijkheid: meer dan één node achter dezelfde naam.

Naamcontroles: wat de client vergelijkt

De client vergelijkt de identiteit die hij verwacht met de namen in het certificaat, die in de subjectAltName-extensie staan. Een ruw IP in het profiel, een alias die het certificaat niet vermeldt, of een naam die alleen naar dezelfde server resolveert – allemaal falen ze op deze controle. De juiste machine bereiken is niet hetzelfde als de juiste identiteit presenteren.

Onderzoek het certificaat dat de server daadwerkelijk presenteert in plaats van een bestand van een eerdere poging. De opdracht hieronder vraagt om de naam die je hebt geconfigureerd, zodat het antwoord het certificaat bevat dat een echte client zou zien.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -dates -ext subjectAltName

Een certificaat van een vertrouwde uitgever kan nog steeds voor een andere dienst zijn. Houd de naamcontroles van de client aan, want een CA vertrouwen machtigt niet elke naam die die CA ooit heeft ondertekend. De controle uitschakelen maakt van een configuratiefout een blootstelling.

Verloop: wiens klok wordt gelezen

Geldigheid is een paar tijdstempels, en de verificateur vergelijkt ze met zijn eigen klok. Een apparaat met een verkeerde klok meldt een geldig certificaat als verlopen of als nog niet geldig, en de oplossing is de klok, niet het certificaat. Een verschil in tijdzoneweergave is niet hetzelfde als een verkeerde onderliggende tijd.

Vergelijk de certificaatdatums met UTC op de client voordat je iets concludeert:

openssl x509 -in cert.pem -noout -dates
date -u

Als de datums echt verstreken zijn, vernieuw via de uitgever. Als er een vervanging bestaat die nog niet geldig is, volg de ondersteunde overgang in plaats van de klok te verzetten om erbij te passen. Een apparaat terugdateren om een certificaat tevreden te stellen is een beslissing met gevolgen ver buiten de tunnel.

Waarom het oplossen van het ene het andere blootlegt

Validatie voert een reeks controles uit, en de eerste fout stopt het rapport. Los de naam op en de client kan je dan vertellen dat de keten onvolledig is of dat het certificaat verlopen is. Dat betekent niet dat de eerste controle overbodig was. Het betekent dat de keten meer dan één probleem had, dus verwacht de tweede fout in plaats van die te lezen als bewijs dat de eerste oplossing verkeerd was.

Meerdere nodes maken dit erger. Een loadbalanced dienst kan verschillende certificaten van verschillende leden presenteren, dus een test die twee keer slaagt en één keer faalt vertelt je over de vloot en niet over je client. Bewaar het peeradres en het tijdstip van de poging in de diagnose.

Dat detail is wat een wisselvallig ticket in een reproduceerbaar ticket verandert.

Bewijs het met een nieuwe verbinding

Open na de reparatie een nieuwe verbinding in plaats van een oude te hervatten, en bevestig dat de stap die eerder faalde nu slaagt. Bevestig daarna dat de tunnel echt verkeer draagt, want een geslaagde handshake is geen werkende route.

Bewaar de exacte foutstap en de certificaatdetails bij het ticket.

Die registratie is wat de volgende persoon ervan weerhoudt accountwachtwoorden te resetten voor een certificaatprobleem. Identiteit en geldigheid zijn aparte vragen, en RFC 5280 is de referentie voor hoe de tweede wordt beoordeeld.

Gerelateerde artikelen