SSTP asiakas hyväksyy palvelimen vasta, kun TLS-validointi onnistuu, ja tuo tarkistus vertaa nimeä, ketjua ja käyttötarkoitusta. Nimi tulee yhteysprofiilista, ei osoitteesta, jota satut pystymään pingaamaan. Kun yksi kolmesta ei täsmää, asiakas ilmoittaa varmenneongelmasta eikä koskaan saavuta kirjautumiskehotetta.

Profiilin nimi ratkaisee, mitä tarkistetaan

SSTP ajaa TLS:ää TCP 443:n päällä, joten asiakas käyttäytyy kuin mikä tahansa muu TLS-asiakas: se ottaa isäntänimen profiilista, pyytää tätä nimeä ja vertaa varmennetta siihen. Jos kirjoitat profiiliin IP-osoitteen, vertailusta tulee IP-osoitteiden vertailu, jota useimmat palvelinvarmenteet eivät täytä.

Siksi selaintesti voi onnistua, vaikka VPN epäonnistuu, koska selain käytti eri nimeä kuin profiili. Sama jako näkyy, kun split-horizon DNS ratkaisee VPN:n isäntänimen sisäiseksi osoitteeksi, kun taas selain saavutti julkisen. Kohdista profiili ensin dokumentoituun isäntänimeen ja vertaa sitten varmenteita. Kaikki muu, mitä muutat ennen sitä, on arvailua.

Mitä palvelimen varmenteen on sisällettävä

Nykyaikaiset asiakkaat vertaavat kohteen vaihtoehtoisten nimien laajennukseen, joten isäntänimen on oltava siellä DNS-merkintänä. Pelkkä yleinen nimi ei riitä nykyisille validointipinoille, ja jokerimerkki kattaa yhden tason, ei mitä tahansa keksimääsi aliverkkotunnusta. Kolme varmennetta näyttävät rajan: oikea nimi väärällä käyttötarkoituksella vahvistaa identiteetin ja epäonnistuu sitten käyttötarkoituksen tarkistuksessa, oikea nimi ja käyttötarkoitus ilman välivarmennetta epäonnistuvat ketjussa, ja nimi, joka on vain yleisessä nimessä, epäonnistuu ennen kuin kumpikaan kahdesta muusta ehtii merkitä.

Varmenne tarvitsee myös palvelimen todennuksen käyttötarkoituksen, laajennetun avaimenkäytön arvon, joka mainitaan Microsoftin SSTP-määrityksessä, eli serverAuth objektitunnuksella 1.3.6.1.5.5.7.3.1. Avaimenkäyttö ja kelvollinen ketju täydentävät joukon. Varmenne, joka on palvelimella, on myönnetty oikealle nimelle mutta vain asiakkaan todennukseen, epäonnistuu silti.

Tarkista ketju ja kello ennen tunnistetietoja

Aika- ja luottamusvirheet tuottavat saman näkyvän tuloksen kuin nimen epätäsmäävyys, ja molemmat on halvempi diagnosoida kuin salasanaongelma. Tarkista palvelimen kello ja asiakkaan kello ja lue sitten ketju niin kuin asiakas sen näkee:

# from the client, or any host that runs openssl
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -subject -dates -ext subjectAltName
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -verify_return_error </dev/null
# on the Windows server that holds the SSTP listener
w32tm /query /status

Ensimmäinen komento tulostaa nimen, voimassaoloikkunan ja vaihtoehtoiset nimet, joihin asiakas vertaa. Toinen ilmoittaa vahvistusvirheet esitetyn ketjun kanssa, ja juuri siinä puuttuva välivarmenne näkyy. Windowsissa aikapalvelun kysely kertoo, korjataanko kelloa vai onko se yksinkertaisesti ajautunut.

Sisäinen CA lisää yhden ehdon: asiakkaan on luotettava tähän CA:han. Asenna organisaation juuri hyväksytyn jakelukanavan kautta, ei sivulta, joka tarjoaa korvaavaa varmennetta, koska tuo päätös on koko luottamusmalli pienoiskoossa.

Palvelimen validointi ja käyttäjän todennus ovat peräkkäisiä vaiheita, joilla on erilaiset epäonnistumiset. Varmennevirhe tarkoittaa, että asiakas ei koskaan luottanut palvelimeen, kun taas hylätty salasana tarkoittaa, että se luotti palvelimeen ja tunnistetiedot olivat väärät. Varmenteen validoinnin kytkeminen pois salasanakehotteen saavuttamiseksi poistaa takuun sen korjaamisen sijaan. Todistaaksesi, että muun polun toimii, testaa sama isäntänimi ja portti asiakkaalta, joka jo luottaa ketjuun, ja jätä käyttöön otettu profiili rauhaan.

Korjaa nimi tai varmenne ja testaa uudelleen

Kolme ehtoa ratkaisee korjauksen. Jos profiilin nimi on väärä, korjaa profiili tai lisää puuttuva nimi varmenteeseen. Jos ketju on puutteellinen, asenna välivarmenne palvelimelle. Jos käyttötarkoitus on väärä, myönnä uudelleen sen sijaan että paikkaisit sitä.

Muutoksen jälkeen yhdistä uudelleen tuetulla asiakkaalla ja varmista, että kirjautumiskehote ilmestyy ja sitten että tunneli nousee. Kirjaa tikettiin käytetty isäntänimi, myöntäjä ja vanhenemispäivä. Juuri tuo merkintä tekee seuraavasta uusinnasta ajoitetun tehtävän eikä yhtä uutta katkosta, ja se näyttää myös seuraavalle henkilölle, mikä kolmesta ehdosta oli todella rikki.

Aiheeseen liittyvät artikkelit