SSTP sertifikat uyğunsuzluğu: serverinizin təqdim etməli olduğu ad
Müştəri profildəki host adını sertifikatla müqayisə edir, sonra zənciri və təyinatı yoxlayır. Profili və ya sertifikatı düzəldin, yoxlamanı heç vaxt.
SSTP müştərisi serveri yalnız TLS yoxlaması uğurla bitdikdən sonra qəbul edir və bu yoxlama ad, zəncir və təyinatı müqayisə edir. Ad bağlantı profilindən gəlir, təsadüfən ping edə bildiyiniz ünvandan deyil. Üçündən biri uyğun gəlmədikdə müştəri sertifikat problemi bildirir və heç vaxt giriş sorğusuna çatmır.
Nəyin yoxlanılacağını profil adı müəyyən edir
SSTP TLS-i TCP 443 üzərində işlədir, buna görə müştəri hər hansı digər TLS müştərisi kimi davranır: host adını profildən götürür, həmin adı tələb edir və sertifikatı onunla müqayisə edir. Profilə IP ünvanı yazsanız, müqayisə IP ünvanı müqayisəsinə çevrilir və əksər server sertifikatları buna cavab vermir.
Buna görə brauzer testi uğurlu ola bilər, halbuki VPN uğursuz olur, çünki brauzer profildən fərqli ad istifadə edib. Eyni ayrılma split-horizon DNS VPN host adını daxili ünvana həll edərkən brauzerin açıq ünvana çatdığı halda da görünür. Əvvəlcə profili sənədləşdirilmiş host adı ilə uyğunlaşdırın, sonra sertifikatları müqayisə edin. Bundan əvvəl dəyişdiyiniz hər şey təxmindir.
Server sertifikatının daşımalı olduğu şeylər
Müasir müştərilər subyektin alternativ ad uzantısına uyğunlaşdırır, buna görə host adı orada DNS qeydi kimi görünməlidir. Yalnız ümumi ad cari yoxlama yığınları üçün kifayət etmir və vəhşi kart uydurduğunuz hər subdomeni deyil, bir etiketi əhatə edir. Üç sertifikat sərhədi göstərir: düzgün ad və səhv təyinat kimliyi təsdiqləyir, sonra təyinat yoxlamasında uğursuz olur, düzgün ad və təyinatla ara sertifikatın olmaması zəncirdə uğursuzluğa səbəb olur və yalnız ümumi adda görünən ad hər ikisindən əvvəl uğursuz olur.
Sertifikat həmçinin server autentifikasiyası təyinatını tələb edir: Microsoft-un SSTP spesifikasiyası sənədində göstərilən genişləndirilmiş açar istifadəsi dəyəri, yəni obyekt identifikatoru 1.3.6.1.5.5.7.3.1 olan serverAuth. Açar istifadəsi və etibarlı zəncir dəsti tamamlayır. Serverdə mövcud olan, düzgün ad üçün verilmiş, ancaq yalnız müştəri autentifikasiyası üçün olan sertifikat da uğursuz olur.
Kimlik məlumatlarından əvvəl zənciri və saatı yoxlayın
Vaxt və etibar uğursuzluqları ad uyğunsuzluğu ilə eyni görünən nəticəni verir və hər ikisi şifrə probleminə nisbətən daha asan diaqnoz edilir. Serverin saatını və müştərinin saatını yoxlayın, sonra zənciri müştərinin gördüyü kimi oxuyun:
# 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 /statusBirinci əmr adı, etibarlılıq pəncərəsini və müştərinin müqayisə edəcəyi alternativ adları çap edir. İkincisi zəncirlə birlikdə yoxlama xətalarını bildirir və itkin ara sertifikat məhz burada görünür. Windows-da vaxt xidməti sorğusu saatın düzəldildiyini və ya sadəcə sürüşdüyünü söyləyir.
Daxili CA daha bir şərt əlavə edir: müştəri həmin CA-ya etibar etməlidir. Təşkilati kökü onaylanmış paylama kanalı ilə quraşdırın, əvəzedici sertifikat təklif edən səhifədən deyil, çünki bu qərar bütün etibar modelinin kiçik modelidir.
Server yoxlaması və istifadəçi autentifikasiyası fərqli uğursuzluqları olan ardıcıl mərhələlərdir. Sertifikat xətası müştərinin serverə heç vaxt etibar etmədiyini bildirir, rədd edilmiş şifrə isə serverə etibar etdiyini və kimlik məlumatlarının səhv olduğunu bildirir. Şifrə sorğusuna çatmaq üçün sertifikat yoxlamasını söndürmək zəmanəti təmir etmək əvəzinə aradan qaldırır. Yolun qalan hissəsinin işlədiyini sübut etmək üçün zəncirə artıq etibar edən müştəridən eyni host adını və portu sınayın və yerləşdirilmiş profili toxunulmaz buraxın.
Adı və ya sertifikatı düzəldin, sonra yenidən sınayın
Təmiri üç şərt müəyyən edir. Profil adı səhvdirsə, profili düzəldin və ya çatışmayan adı sertifikata əlavə edin. Zəncir natamamdırsa, ara sertifikatı serverə quraşdırın. Təyinat səhvdirsə, ətrafından yan keçmək əvəzinə yenidən buraxın.
Dəyişiklikdən sonra dəstəklənən müştəri ilə yenidən qoşulun və giriş sorğusunun göründüyünü, sonra tunelin qalxdığını təsdiqləyin. İstifadə olunan host adını, buraxanı və bitmə tarixini biletdə qeyd edin. Bu qeyd növbəti yeniləməni başqa bir kəsinti əvəzinə planlı işə çevirir və növbəti şəxsə üç şərtdən hansının həqiqətən pozulduğunu göstərir.