Nezhoda certifikátu SSTP: aké meno musí server predložiť
Klient porovná názov hostiteľa z profilu s certifikátom a potom skontroluje reťaz a účel. Opravte profil alebo certifikát, nikdy nie overovanie.
SSTP klient prijme server až po úspešnom overení TLS a táto kontrola porovnáva názov, reťaz a účel. Názov pochádza z profilu pripojenia, nie z adresy, ktorú náhodou môžete pingnúť. Keď jedna z troch položiek nesedí, klient nahlási problém s certifikátom a nikdy sa nedostane k výzve na prihlásenie.
Názov v profile určuje, čo sa kontroluje
SSTP spúšťa TLS cez TCP 443, takže klient sa správa ako každý iný TLS klient: vezme názov hostiteľa z profilu, vyžiada tento názov a porovná s ním certifikát. Ak do profilu zadáte IP adresu, porovnanie sa zmení na porovnanie IP adries, ktoré väčšina certifikátov servera nespĺňa.
Test v prehliadači preto môže uspieť, zatiaľ čo VPN zlyhá, pretože prehliadač použil iné meno ako profil. Rovnaké rozdelenie sa objaví, keď split-horizon DNS preloží názov hostiteľa VPN na internú adresu, zatiaľ čo prehliadač dosiahol verejnú. Najprv zosúlaďte profil s dokumentovaným názvom hostiteľa, potom porovnávajte certifikáty. Čokoľvek iné zmeníte predtým, je hádanie.
Čo musí certifikát servera obsahovať
Moderní klienti porovnávajú s rozšírením alternatívnych mien subjektu, takže názov hostiteľa tam musí byť ako záznam DNS. Samotné bežné meno pre súčasné overovacie zásobníky nestačí a zástupný znak pokrýva jednu časť, nie akúkoľvek subdoménu, ktorú vymyslíte. Tri certifikáty ukazujú hranicu: správne meno s nesprávnym účelom overí identitu a potom zlyhá pri kontrole účelu, správne meno aj účel s chýbajúcim sprostredkujúcim certifikátom zlyhajú na reťazi a meno, ktoré je len v bežnom mene, zlyhá skôr, než na ktoromkoľvek z tých dvoch záleží.
Certifikát potrebuje aj účel overovania servera, hodnotu rozšíreného použitia kľúča uvedenú v špecifikácii SSTP od Microsoftu, teda serverAuth s identifikátorom objektu 1.3.6.1.5.5.7.3.1. Použitie kľúča a platná reťaz dopĺňajú sadu. Certifikát, ktorý na serveri existuje, je vydaný pre správne meno, ale iba na overovanie klienta, stále zlyhá.
Pred prihlasovacími údajmi overte reťaz a hodiny
Zlyhania času a dôvery dávajú rovnaký viditeľný výsledok ako nezhoda mena a oboje sa diagnostikuje lacnejšie než problém s heslom. Skontrolujte hodiny servera a hodiny klienta a potom prečítajte reťaz tak, ako ju vidí klient:
# 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 /statusPrvý príkaz vypíše meno, dobu platnosti a alternatívne mená, s ktorými bude klient porovnávať. Druhý hlási chyby overenia s predloženou reťazou a práve tam sa objaví chýbajúci sprostredkujúci certifikát. V systéme Windows vám dotaz na časovú službu povie, či sa hodiny opravujú alebo sa len rozišli.
Interná CA pridáva ďalšiu podmienku: klient musí tejto CA dôverovať. Nainštalujte organizačný koreň schváleným distribučným kanálom, nie zo stránky ponúkajúcej náhradný certifikát, pretože toto rozhodnutie je celý model dôvery v miniatúre.
Overenie servera a autentifikácia používateľa sú po sebe idúce fázy s odlišnými zlyhaniami. Chyba certifikátu znamená, že klient serveru nikdy nedôveroval, zatiaľ čo odmietnuté heslo znamená, že mu dôveroval a údaje boli nesprávne. Vypnutie overovania certifikátu, aby ste sa dostali k výzve na heslo, odstraňuje záruku namiesto toho, aby ju opravilo. Aby ste dokázali, že zvyšok cesty funguje, otestujte rovnaký názov hostiteľa a port z klienta, ktorý reťazi už dôveruje, a nasadený profil nechajte tak.
Opravte názov alebo certifikát a skúste znova
Opravu určujú tri podmienky. Ak je názov v profile nesprávny, opravte profil alebo pridajte chýbajúce meno do certifikátu. Ak je reťaz neúplná, nainštalujte sprostredkujúci certifikát na server. Ak je účel nesprávny, vydajte nový certifikát, namiesto obchádzania záplatou.
Po zmene sa znova pripojte podporovaným klientom a potvrďte, že sa objaví výzva na prihlásenie a potom že tunel nabehne. Do tiketu poznamenajte použitý názov hostiteľa, vydavateľa a dátum vypršania. Práve tento záznam robí z ďalšej obnovy plánovanú úlohu namiesto ďalšieho výpadku a tiež ukáže ďalšiemu človeku, ktorá z troch podmienok bola skutočne porušená.