====== 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]].