====== Izrada self-signed sertifikata ====== ===== RD Gateway, IIS ===== Oba server RD GW, IIS imaju veoma ograničenu mogućnost automatske izrade self-signed sertifikata. Ograničenje se odnosi na max. period trajanja sertifikata koji je u slučaju RD GW samo 6 meseci, dok IIS, uz pomoć CA Authority servisa, može da generiše sertifikat u trajanju od godinu dana. Niže je naveden postupak izrade takvog sertifikata. Ovo nije najsrećnije rešenje, savet je da se koristi **Openssl** program opisan niže. ===== MakeCert ===== Iako postoji Microsoft alat pod nazivm **[[https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx|MakeCert]] ** (deo Windows SDK) on nije dovoljan za potpuno izvođenje ove operacije jer ne može da kreira **KeyUsage** svojstvo sertifikata. ===== Openssl ===== Alat koji može da napravi potpun sertifikat proizvoljne dužine trajanja (više desetina godina) je Linuxov **Openssl**. Komanda za izradu sertifikata koji (bi trebalo da) odgovara RemoteApps serverima je: [12.03.2020 Milano] Bolje je koristiti **Windows 10 način**, sertifikat dobijen iz Linuxa umeda pravi problem sa nekim od potrebnih servisa za RemoteApp. openssl req -x509 -config extended.conf -extensions v3_ca -nodes -sha512 -days 3650 -newkey rsa:4096 -keyout sertifikat.key -out sertifikat.crt gde su: **extended.conf** - fajl sa specijalnih podešavanjima, na primer [[:kb:uputstva:sistemska:remoteapps:openssl_extended_script|ovakav skript]]\\ **v3_ca** - blok unutar skripta koji definiše **extended** svojstva sertifikata (specifična namena)\\ **sertifikat.key** - fajl u kome će se sačuvati privatni ključ sertifikata\\ **sertifikat.crt** - fajl u kome će se sačuvati kompajlirani sertifikat u **crt** formatu. Kako **crt** format u Windows nije mnogo primenjiv, potrebno je konvertovati dobijent fajl u **pfx** format. To se postiže sledećom komandom: openssl pkcs12 -export -out sertifikat.pfx -inkey sertifikat.key -in sertifikat.crt gde je: **sertifikat.pfx** - naziv pfx fajla u koji će sertifikat biti konvertovan. ==== Windows 10 ==== Najbolji način da se napravi **Windows RemoteApp kompatibilan sertifikat** jeste upotreba PowerShell-a u Windows 10. Verzija je važna pošto veći deo opcija u prethodnim verzijama PS-a nije podržana. Ako imamo W10 dovoljno je pokrenuti PS komandu New-SelfSignedCertificate -Type Custom -Subject "CN=rap.leburickomerc.com" -KeyUsage DataEncipherment, KeyEncipherment, DigitalSignature -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1") -CertStoreLocation "Cert:\CurrentUser\My" -NotBefore '2020-03-11' -NotAfter '2023-03-11' ====== Upotreba self-signed sertifikata za Https pristup ====== Kako je pristup RD Web Acces i RD Gateway serverima upućen na kriptovane kanale neophodno je registrovati sertifikate na na nekoliko mesta u sistemu. Isti sertifikat važiće i za **https** stranicu za pristup sadržaju preko internet servera (**[[https://moj.domen.rs/RDWeb/|https://moj.domen.rs/RDWeb/]]**). ===== Mesta za unos sertifikata ===== ==== Remote Desktop Services - DEPLOYMENT ==== Sertifikati se unose u Deployment svojstva svih RDP servisa: {{ :kb:web:rdp_deployment_step1.png?611x174 }} a postavke se vrše u okviru opcije **Certificates** {{ :kb:web:rdp_deployment_step2.png?747x593 }} **VAŽNA NAPOMENA ! Da bi sertifikat bio prihvaćen mora biti napravljen po zahtevu iz IIS-a ili RD Gateway servera**. U principu, moguće je i ručno zadati //request// za ovo, ali ima mnogo parametara gde se može pogrešiti što rezultuje odbijanjem sertifikata. ==== IIS (vezivanje sertifikata za SSL port, binding) ==== Sertifikat se vezuje za port IIS-a opcijom **binding** u postavkama //Default Web Site// odeljka: {{ :kb:web:rdweb_iis_deployment.png?619x522 }} ===== Priprema sertifikata ===== ==== Zahtev za dobijanje sertifikata ==== Ovde će biti reč o //self signed // sertifikatu, po principu "uradi sam". Alati: **certlm** (Manage computer certificates), **IIS manager**, **Certification Authority rola**. IIS i CA role se moraju prethodno instalirati. Iako se zahtev za dobijanje sertifikata može zadati ručno, najlakše je (zbog mnošta parametara koje treba usaglasiti) izvesti zahtev iz IIS-a. To se radi iz aplikacije //Server Certificates// u okviru postavki samog IIS servera. {{ :kb:web:rdweb_iis_sertifikat_1.png?1015x414 }} **Jedino** je važno je da se zahtevu dodeli**Common name = moj.domen.rs**. Važno je zbog toga što će se pri pokretanju RDP-a na klijentskoj strani upoređivati ovo polje sa FQDN (adresa za pristup servisu), pa ako se ne slažu veza ne biva uspostavljena //"iz sigurnosnih razloga"//. Još jedna postavka igra bitnu ulogu u formiranju buduće **RDP** prečice. To je parametar **DefaultTSGateway** koji treba da ukazuje na javnu adresu preko koje će klijenti pristupati servisu: {{ :kb:web:rdweb_iis_pages.png?632x151 }} ==== Odobravanje zahteva ==== Odobravanje se vrši iz servisa **Certificate Authority**, role koji se dodaje pri instalaciji servera. Njegova uloga je da prati domenske sertifikate i odobrava/pravi nove. {{ :kb:web:rdweb_iis_sertifikat_pend_req.png?575x349 }}Odobravanje se vrši opcijom **Submit new request** nakon čega se može odbrati **req** fajl dobijen na osnovu zahteva iz **IIS-a**. ==== Raspoređivanje sertifikata ==== Odobreni sertifikat se zatim prebacuje u **certlm** grupu **Certificate** **Enrollment Requests** odakle ga je potrebno exportovati u **cer** i **pfx** (sa privatnim ključem) falove. Pfx fajl se zatim importuje u **Personal** sertifikate (čime postaje vidljiv IIS-u). Fajl **cer** se potom uvozi u **Truste Root Certification Authotrities** kako bi IIS verovao **Personal** sertifikatu. **Pfx** fajl se preko RD Deployment menadžera uvozi u 4 RD servisa iz gornjeg spiska. Ovim je sve spremno za SSL pristup. ====== Sitnice koje zagorčavaju život ====== ===== Lokalna adresa servisa u RDP prečici ===== Jedan od težih kamenova spoticanja je upornost sistema da **RDP** prečicama dodeljuje **lokalne ** putanje za pristup servisu (npr. umesto **moj.domen.rs** dobija se adresa **ime.računara.local**) što ih čini nedostupnim van LAN-a. U **RD Web Access** serveru ovo jednostavno promeni jer je **predviđeno rešenje** upotreba **RD Gateway** servera. Nažalost to radi samo ako su **RDP klijenti verzije 8.0** ili noviji. Alternativno, moguće je pokrenuti skriptu u **power shell** prozoru koja ovo omogućava. Skripta se može skinuti [[https://gallery.technet.microsoft.com/Change-published-FQDN-for-2a029b80|odavde]], a uputstvo za dozvolu pokretanja (ako je zabranjeno pokretati skripte, što je podrazumevana postavka Windows 2012) se nalazi [[https://technet.microsoft.com/library/hh847748.aspx|ovde]].