kb:web:remoteapps_self_signed_sertifikat

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
kb:web:remoteapps_self_signed_sertifikat [2015/03/19 01:49] – created milanokb:web:remoteapps_self_signed_sertifikat [2020/03/12 05:35] (current) – [Openssl] milano
Line 1: Line 1:
 +====== 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.
 +<code>
 +openssl req -x509 -config extended.conf -extensions v3_ca -nodes -sha512 -days 3650 -newkey rsa:4096 -keyout sertifikat.key -out sertifikat.crt
 +</code>
 +
 +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:<code>
 +openssl pkcs12 -export -out sertifikat.pfx -inkey sertifikat.key -in sertifikat.crt
 +</code>
 +
 +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
 +
 +<code>
 +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'
 +</code>
 +
 ====== Upotreba self-signed sertifikata za Https pristup ====== ====== 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]].
  
  • kb/web/remoteapps_self_signed_sertifikat.1426729794.txt.gz
  • Last modified: 2015/03/19 01:49
  • (external edit)