SSTP сертификатының сәйкессіздігі: серверіңіз ұсынуы тиіс атау
Клиент профильдегі хост атауын сертификатпен салыстырып, содан кейін тізбек пен мақсатты тексереді. Профильді немесе сертификатты түзетіңіз, тексеруді ешқашан.
SSTP клиент серверді TLS тексеруі сәтті өткеннен кейін ғана қабылдайды, ал бұл тексеру атауды, тізбекті және мақсатты салыстырады. Атау қосылым профилінен келеді, кездейсоқ пингтей алатын мекенжайдан емес. Үшеуінің біреуі сәйкес келмесе, клиент сертификат мәселесін хабарлап, кіру сұранысына ешқашан жетпейді.
Профильдегі атау ненің тексерілетінін анықтайды
SSTP TLS-ті TCP 443 арқылы іске қосады, сондықтан клиент кез келген басқа TLS клиенті сияқты әрекет етеді: хост атауын профильден алады, сол атауды сұрайды және сертификатты онымен салыстырады. Профильге IP мекенжайын жазсаңыз, салыстыру IP мекенжайларын салыстыруға айналады, оны сервер сертификаттарының көбісі қанағаттандырмайды.
Сондықтан браузердегі сынақ сәтті болуы мүмкін, ал VPN сәтсіз аяқталады, өйткені браузер профильдегіден басқа атауды қолданған. Дәл осындай бөліну split-horizon DNS VPN хост атауын ішкі мекенжайға шешкенде, ал браузер жалпыға қолжетімді мекенжайға жеткенде пайда болады. Алдымен профильді құжатталған хост атауымен сәйкестендіріңіз, содан кейін сертификаттарды салыстырыңыз. Оған дейін өзгертетін кез келген басқа нәрсе — болжам.
Сервер сертификатында не болуы керек
Заманауи клиенттер субъектінің баламалы атаулар кеңейтімімен салыстырады, сондықтан хост атауы онда DNS жазбасы ретінде болуы керек. Тек ортақ атау қазіргі тексеру стектері үшін жеткіліксіз, ал джокер белгісі бір белгіні қамтиды, сіз ойлап тапқан кез келген субдоменді емес. Үш сертификат шекараны көрсетеді: дұрыс атау қате мақсатпен сәйкестікті растайды, содан кейін мақсат тексеруінде сәтсіз болады, дұрыс атау мен мақсат жетіспейтін аралық сертификатпен тізбекте сәтсіз болады, ал тек ортақ атауда кездесетін атау сол екеуінің маңызы болмай тұрып сәтсіз болады.
Сертификатқа сервердің аутентификация мақсаты да қажет, Microsoft-тың SSTP спецификациясында аталған кеңейтілген кілт пайдалану мәні, яғни 1.3.6.1.5.5.7.3.1 нысан идентификаторы бар serverAuth. Кілт пайдалану және жарамды тізбек жиынтықты толықтырады. Серверде бар, дұрыс атауға берілген, бірақ тек клиент аутентификациясына арналған сертификат та сәтсіз болады.
Тіркелу деректерінен бұрын тізбекті және сағатты тексеріңіз
Уақыт және сенім ақаулары атау сәйкессіздігі сияқты көрінетін нәтиже береді және екеуін де құпиясөз мәселесінен арзан диагностикалауға болады. Сервердің сағатын және клиенттің сағатын тексеріңіз, содан кейін тізбекті клиент көретіндей оқыңыз:
# 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Бірінші команда атауды, жарамдылық терезесін және клиент салыстыратын баламалы атауларды шығарады. Екіншісі ұсынылған тізбекпен бірге тексеру қателерін хабарлайды, дәл сол жерде жетіспейтін аралық сертификат көрінеді. Windows-та уақыт қызметінің сұрауы сағаттың түзетіліп жатқанын немесе жай ғана ауытқығанын айтады.
Ішкі CA тағы бір шарт қосады: клиент сол CA-ға сенуі керек. Ұйымдық тамырды оның бекітілген тарату арнасы арқылы орнатыңыз, ауыстыру сертификатын ұсынатын беттен емес, өйткені бұл шешім бүкіл сенім моделінің шағын көрінісі.
Серверді тексеру және пайдаланушыны аутентификациялау — әртүрлі ақаулары бар дәйекті кезеңдер. Сертификат қатесі клиенттің серверге ешқашан сенбегенін білдіреді, ал қабылданбаған құпиясөз оның серверге сенгенін және деректердің қате болғанын білдіреді. Құпиясөз сұранысына жету үшін сертификатты тексеруді өшіру кепілдікті жөндеудің орнына алып тастайды. Жолдың қалған бөлігі жұмыс істейтінін дәлелдеу үшін тізбекке әлдеқашан сенетін клиенттен сол хост атауы мен портты сынаңыз, ал орналастырылған профильді тимей қалдырыңыз.
Атауды немесе сертификатты түзетіп, қайта сынаңыз
Жөндеуді үш шарт анықтайды. Профиль атауы қате болса, профильді түзетіңіз немесе жетіспейтін атауды сертификатқа қосыңыз. Тізбек толық болмаса, аралық сертификатты серверге орнатыңыз. Мақсат қате болса, айналасына жамау салғаннан гөрі қайта шығарыңыз.
Өзгерістен кейін қолдау көрсетілетін клиентпен қайта қосылып, кіру сұранысының шыққанын, содан кейін туннельдің көтерілгенін растаңыз. Тикетке қолданылған хост атауын, шығарушыны және мерзімінің бітетін күнін жазыңыз. Дәл осы жазба келесі жаңартуды тағы бір үзіліс емес, жоспарланған жұмысқа айналдырады және келесі адамға үш шарттың қайсысы шын мәнінде бұзылғанын көрсетеді.