Remote Desktop (jeb Terminal Services) protokols ar katru Windows versiju lēnām attīstās. Pēdējās versijās (sākot ar Windows Vista) krietni uzlabota ir arī protokola drošība – pirms savienojuma izveides tiek pārbaudīta servera (ar serveri domāts dators, pie kura slēdzas klāt, tam nav obligāti jābūt ar servera operētājsistēmu) identitāte. Aktīvajā direktorijā problēmu ir maz – identitāti pārbauda, izmantojot domēna līdzekļus (Kerberos autentifikāciju).
Šo identitātes pārbaudi gan var atslēgt sistēmas uzstādījumu attiecīgajā sadaļā. Tas ļauj pie datora pieslēgties izmantojot vecākas Remote Desktop klienta versijas, piemēram, tās, kas iekļautas Windows XP.
Ja servera identitātes pārbaude ir atslēgta (vai serveris to neuztur), tad jaunās klienta versijas attēlos brīdinājumu, pirms vēl tiek prasīts ievadīt lietotāja vārdu un paroli.
To, vai servera identitāte ir pārbaudīta, var redzēt savienojuma augšējā joslā. Ja servera identitāte ir pārbaudīta, tajā tiks attēlota atslēdziņa, uz kuras nospiežot, varēs redzēt, kāda veida pārbaude tika veikta. Zemāk attēlā redzams logs, kas tiek attēlots, ja serveris un klients atrodas vienā domēnā un servera identitāte tiek pārbaudīta ar domēna līdzekļiem.
Taču, ja serveris nav vienā domēnā ar lietotāja datoru, tad identitāte tiek pārbaudīta, izmantojot SSL sertifikātu. Pēc noklusējuma serveris šo sertifikātu ģenerē automātiski, kas nozīmē, ka visdrīzāk klients, kas pie tā slēgsies saņems brīdinājumu par neuzticamu sertifikātu. Kā arī savienojuma augšējā joslā neparādīsies atslēdziņa.
Lai šo problēmu risinātu, iespējams serverim norādīt, ka jāizmanto nevis ģenerētais sertifikāts, bet gan kāds cits, kas, piemēram, ir nopirkts no kādas no lielajām sertifikātu izdevējiestādēm (piemēram, VeriSign, GoDaddy utt.). Diemžēl tas nav tik vienkārši, kā varētu vēlēties.
Pirmais solis ir importēt sertifikātu datora reģistrā. Pamācības, kā to darīt, internetā ir pa pilnam, galvenais, ka sertifikāts jāimportē Local Computer glabātuvē (nevis lietotāja glabātuvē). To var izdarīt, izpildot komandu mmc.exe, pēc tam izpildot darbības File > Add/Remote Snap-ins > Certificates > Computer Accout > Local Computer. Sertifikātam jābūt importētam zarā Personal (jo šādu sertifikātu visdrīzāk izmantos arī web serveris vai cita programmatūra) vai Remote Desktop. Zemāk attēlā redzamas lietas, kas sertifikātā ir obligātas, lai tas būtu derīgs šiem mērķiem.
Lai varētu izpildīt pēdējo soli, nepieciešams norakstīt sertifikāta kontrolsummu. To var atrast, atverot sertifikātu un sadaļā Details atrodot ierakstu Thumbprint. Vēlams, lai sertifikāta kontrolsummas algoritms (Thumbprint algorithm) būtu sha1 – neesmu pārbaudījis, vai citādi sertifikāti strādās.
Izmantojot šo pašu rīku, nepieciešams piešķirt papildus tiesības uz šo sertifikātu Network Service lietotājam. Lai to izdarītu, jānospiež labā poga uz attiecīgā sertifikāta un jāizvēlas All Tasks > Manage Private Keys. Šajā logā jāpievieno lietotājam Network Service tiesības Read.
Pēdējais solis, lai liktu serverim izmantot šo sertifikātu, ir atvērt reģistra redaktoru (regedit.exe) un atvērt kokā HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet >Control > Terminal Server > WinStations > RDP-Tcp. Šajā zarā vajag izveidot jaunu ierakstu ar tipu Binary Value (REG_BINARY) un nosaukumu SSLCertificateSHA1Hash. Kā vērtību jāievada sertifikāta kontrolsummu (diemžēl man neizdevās to iekopēt un vajadzēja rakstīt ar roku).
Pēc šīm darbībām nākamie Remote Desktop pieslēgumi jau izmantos izvēlēto sertifikātu un pieslēgšanās noritēs bez papildus brīdinājumiem.
Piebilde: ja šos soļus veic, izmantojot Remote Desktop, tad izmēģinājumiem nevajag vērt ciet esošo logu, bet gan veidot jaunu savienojumu, lai gadījumā nepaliktu bez pieejas uz serveri. Lielākajā daļā gadījumu serveris gan centīsies jebkuru kļūdu apstrādāt, izmantojot esošo veco sertifikātu vai izveidojot jaunu pašparakstīto sertifikātu, bet lieki riskēt nevajadzētu.
Šo problēmu atrisināt centos jau sen, bet sanāca tikai tagad, kad atradu šo foruma ierakstu.
925b54d7-d979-4bb6-8006-96d3f58e5408|0|.0|015880aa-1e7c-4e05-a104-8c054d966a2e