SSTP სერტიფიკატის შეუსაბამობა: სახელი, რომელიც თქვენმა სერვერმა უნდა წარმოადგინოს
კლიენტი ადარებს პროფილის ჰოსტის სახელს სერტიფიკატს, შემდეგ ამოწმებს ჯაჭვსა და დანიშნულებას. შეასწორეთ პროფილი ან სერტიფიკატი, არასოდეს — ვალიდაცია.
SSTP კლიენტი სერვერს მხოლოდ TLS-ის ვალიდაციის წარმატების შემდეგ იღებს და ეს შემოწმება ადარებს სახელს, ჯაჭვსა და დანიშნულებას. სახელი კავშირის პროფილიდან მოდის და არა იმ მისამართიდან, რომელიც შემთხვევით შეიძლება დააპინგოთ. როცა სამიდან ერთი არ ემთხვევა, კლიენტი იტყობინება სერტიფიკატის პრობლემას და შესვლის მოთხოვნას ვერასოდეს აღწევს.
პროფილის სახელი განსაზღვრავს, რა შემოწმდება
SSTP TLS-ს TCP 443-ზე ამუშავებს, ამიტომ კლიენტი ისე იქცევა, როგორც ნებისმიერი სხვა TLS კლიენტი: ჰოსტის სახელს პროფილიდან იღებს, ამ სახელს ითხოვს და სერტიფიკატს მას ადარებს. თუ პროფილში IP მისამართს ჩაწერთ, შედარება IP მისამართების შედარებად იქცევა, რომელსაც სერვერის სერტიფიკატების უმეტესობა არ აკმაყოფილებს.
ამიტომ ბრაუზერის ტესტი შეიძლება წარმატებული იყოს, სანამ VPN ჩავარდება, რადგან ბრაუზერმა პროფილისგან განსხვავებული სახელი გამოიყენა. იგივე გაყოფა ჩნდება მაშინ, როცა split-horizon DNS VPN-ის ჰოსტის სახელს შიდა მისამართად წყვეტს, ბრაუზერი კი საჯარო მისამართს მიაღწია. ჯერ პროფილი შეუსაბამეთ დოკუმენტირებულ ჰოსტის სახელს, შემდეგ შეადარეთ სერტიფიკატები. ყველაფერი სხვა, რასაც ამის წინ შეცვლით, ვარაუდია.
რა უნდა შეიცავდეს სერვერის სერტიფიკატი
თანამედროვე კლიენტები სუბიექტის ალტერნატიული სახელების გაფართოებას ადარებენ, ამიტომ ჰოსტის სახელი იქ DNS ჩანაწერად უნდა იყოს. მხოლოდ საერთო სახელი არ კმარა დღევანდელი ვალიდაციის დაწყობებისთვის და ველური ბარათი ერთ ეტიკეტს ფარავს და არა თქვენ მიერ გამოგონილ ნებისმიერ ქვედომენს. სამი სერტიფიკატი საზღვარს აჩვენებს: სწორი სახელი არასწორი დანიშნულებით დაადასტურებს იდენტობას და შემდეგ ჩავარდება დანიშნულების შემოწმებაში, სწორი სახელი და დანიშნულება დაკარგული შუალედური სერტიფიკატით ჩავარდება ჯაჭვში, ხოლო სახელი, რომელიც მხოლოდ საერთო სახელშია, ჩავარდება მანამ, სანამ ამ ორიდან რომელიმეს მნიშვნელობა ექნება.
სერტიფიკატს ასევე სჭირდება სერვერის ავთენტიფიკაციის დანიშნულება — გაფართოებული გასაღების გამოყენების მნიშვნელობა, რომელიც მოხსენიებულია Microsoft-ის SSTP სპეციფიკაციაში, ანუ serverAuth ობიექტის იდენტიფიკატორით 1.3.6.1.5.5.7.3.1. გასაღების გამოყენება და სწორი ჯაჭვი ავსებს ნაკრებს. სერვერზე არსებული სერტიფიკატი, გაცემული სწორი სახელისთვის, მაგრამ მხოლოდ კლიენტის ავთენტიფიკაციისთვის, მაინც ჩავარდება.
შეამოწმეთ ჯაჭვი და საათი მონაცემებამდე
დროისა და ნდობის ჩავარდნები იძლევა იგივე ხილულ შედეგს, რაც სახელის შეუსაბამობა, და ორივეს დიაგნოსტიკა პაროლის პრობლემაზე იაფია. შეამოწმეთ სერვერის საათი და კლიენტის საათი, შემდეგ წაიკითხეთ ჯაჭვი ისე, როგორც კლიენტი ხედავს:
# 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-ს უნდა ენდოს. ორგანიზაციის ფესვი დააყენეთ მისი დამტკიცებული გავრცელების არხით და არა გვერდიდან, რომელიც შემცვლელ სერტიფიკატს გთავაზობთ, რადგან ეს გადაწყვეტილება მთელი ნდობის მოდელია პატარა ზომით.
სერვერის ვალიდაცია და მომხმარებლის ავთენტიფიკაცია თანმიმდევრული ეტაპებია სხვადასხვა ჩავარდნებით. სერტიფიკატის შეცდომა ნიშნავს, რომ კლიენტს სერვერისადმი ნდობა არასოდეს ჰქონია, ხოლო უარყოფილი პაროლი ნიშნავს, რომ ენდო და მონაცემები არასწორი იყო. სერტიფიკატის ვალიდაციის გამორთვა პაროლის მოთხოვნამდე მისასვლელად გარანტიას აშორებს და არ არემონტებს. იმის დასამტკიცებლად, რომ დარჩენილი გზა მუშაობს, გამოსცადეთ იგივე ჰოსტის სახელი და პორტი კლიენტიდან, რომელიც უკვე ენდობა ჯაჭვს და განლაგებულ პროფილს ხელი არ ახლოთ.
შეასწორეთ სახელი ან სერტიფიკატი და ხელახლა გამოსცადეთ
შესწორებას სამი პირობა განსაზღვრავს. თუ პროფილის სახელი არასწორია, შეასწორეთ პროფილი ან დაამატეთ დაკარგული სახელი სერტიფიკატს. თუ ჯაჭვი არასრულია, დააყენეთ შუალედური სერტიფიკატი სერვერზე. თუ დანიშნულება არასწორია, ხელახლა გამოსცემით ნაცვლად იმისა, რომ გარშემო ლაქა დაადოთ.
ცვლილების შემდეგ ხელახლა დაუკავშირდით მხარდაჭერილ კლიენტს და დაადასტურეთ, რომ შესვლის მოთხოვნა ჩნდება, შემდეგ კი რომ გვირაბი ადის. ბილეთში ჩაწერეთ გამოყენებული ჰოსტის სახელი, გამომცემი და ვადის გასვლის თარიღი. სწორედ ეს ჩანაწერი აქცევს შემდეგ განახლებას დაგეგმილ ამოცანად და არა კიდევ ერთ შეფერხებად და აჩვენებს შემდეგ ადამიანს, სამი პირობიდან რომელი იყო რეალურად დარღვეული.