Telepítsen egy ingyenes Let's Encrypt TLS / SSL tanúsítványt az IIS / RDS rendszerre a Windows Server 2016/2012 R2 rendszeren

Ebben a beszámolóban a Let's Encrypt ingyenes TLS / SSL tanúsítványának telepítésének és összerendelésének funkcióiról beszélünk egy webhelyen az IIS webkiszolgálón, amely a Windows Server 2019/2016/2012 R2 rendszeren fut..

Tartalom:

  • Titkosítsuk és az ACME ügyfeleket a Windows számára
  • WACS-ügyfél a TLS telepítéséhez Titkosítsuk a tanúsítványt az IIS-ben a Windows Server rendszeren
  • Az IIS webhely forgalmának átirányítása a HTTP-ről a HTTPS címre
  • A titkosítási igazolás használata a távoli asztali szolgáltatásokhoz

Titkosítsuk és az ACME ügyfeleket a Windows számára

A TLS / SSL tanúsítvány jelenléte a helyszínen lehetővé teszi a hálózaton továbbított felhasználói adatok védelmét a középtávú támadásoktól és garantálja az átvitt adatok integritását. Nonprofit tanúsító hatóság enged„s titkosítása Lehetővé teszi az automatikus titkosításhoz (HTTPS) az API ingyenes kriptográfiai TLS X.509 tanúsítványok kiadását. Csak a domain érvényesítésére szolgáló tanúsítványokat bocsátanak ki, 90 napos érvényességi időtartammal (hetente egy tartományra 50 tanúsítvány korlátozható). De a webhely ütemezése szerint automatikusan újra kiadhatja az SSL-tanúsítványt.

Meghívják az igazolások automatikus kiadására szolgáló API-t automatizált bizonyítvány vezetés környezet (ACME) API. A Windows rendszerekhez jelenleg a 3 legnépszerűbb ACME API kliens implementáció létezik:

  • hasznosság A windows ACME egyszerű (WACS) - parancssori segédprogram tanúsítványok interaktív kiadására és az IIS webkiszolgáló egy adott webhelyhez kapcsolására;
  • modul PowerShell ACMESharp - Powershell könyvtár, számos paranccsal az ACME API-n keresztül a Let's Encrypt szerverekkel való interakcióhoz;
  • bizonylatolás - Grafikus SSL tanúsítványkezelő Windows rendszerhez, amely lehetővé teszi az interaktív tanúsítványkezelést az ACME API-n keresztül.

WACS-ügyfél a TLS telepítéséhez Titkosítsuk a tanúsítványt az IIS-ben a Windows Server rendszeren

Az SSL-tanúsítvány lekérdezésének legegyszerűbb módja a konzol segédprogram használata Windows ACME Egyszerű (WACS) (korábban a projektet hívták LetsEncrypt-győzelem-egyszerű). Ez egy egyszerű varázsló, amely lehetővé teszi az IIS-en futó webhelyek egyikének kiválasztását, valamint az SSL-tanúsítvány automatikus kiadását és hozzárendelését..

Tegyük fel, hogy van egy webhelyünk az IIS-en, telepítve a Windows Server 2016 futtatására. Feladatunk az, hogy átkapcsoljuk HTTPS módba az SSL tanúsítvány telepítésével a Let's Encrypt segítségével..

Töltse le a WACS-ügyfél legújabb kiadását a projektoldalról a GitHubon: https://github.com/PKISharp/win-acme/releases (esetemben ez a v2.0.10 verzió - win-acme.v2.0.10.444.zip fájl).

Csomagolja ki az archívumot egy kiszolgáló könyvtárába az IIS segítségével: c: \ inetpub \ letsencrypt

A Win-Acme használatához telepítenie kell a .NET Framework 4.7.2 vagy újabb verziót (Hogyan deríthetjük ki, hogy a .Net melyik verziója van telepítve?).

Nyisson meg egy parancssort rendszergazdai jogosultságokkal, lépjen a c: \ inetpub \ letsencrypt elemre, és futtassa WACS.exe.

Ezzel elindul az interaktív varázsló a Let's Encrypt tanúsítvány előállításához és az IIS webhelyhez történő kötéséhez. Új tanúsítvány gyors létrehozásához válassza a lehetőséget N: - Új tanúsítványok létrehozása (egyszerű az IIS számára).

Ezután ki kell választania a tanúsítvány típusát. Példánkban nem kell igazolást használni álnevekkel (több SAN - alany alternatív neve), tehát csak válassza 1. Egy IIS-hely egyetlen megkötése. Ha Wildcard tanúsítványra van szüksége, válassza a 3. lehetőséget.

Ezután a segédprogram megjeleníti az IIS-kiszolgálón futó webhelyek listáját, és felajánlja annak a webhelynek a kiválasztását, amelyhez új SSL-tanúsítványt kell létrehoznia, és össze kell kötnie..

Jelölje meg e-mail címét, amelyre értesítéseket küldenek a webhely tanúsítványának frissítésével kapcsolatos problémákról, és másoknak a függőben lévő értesítéseiről (megadhat több e-mailt vesszővel elválasztva). Végül el kell hagyni a használati feltételeket, és a Windows ACME Simple csatlakozni fog a Encrypt kiszolgálókhoz, és megpróbálja automatikusan létrehozni egy új SSL tanúsítványt a webhelyére..

Az IIS Encrypt SSL tanúsítványának létrehozásának és telepítésének folyamata teljesen automatizált.

Alapértelmezés szerint a domain érvényesítése módban történik http-01 érvényesítés (SelfHosting). Ehhez regisztrálnia kell a domain DNS-jében, amely a webszerverre mutat. A WACS kézi üzemmódban történő indításakor kiválaszthatja a típus érvényesítését - 4 [http-01] Létrehozás ideiglenes kérelem -ban IIS (ajánlott). Ebben az esetben egy kis alkalmazás jön létre az IIS webkiszolgálón, amelyen keresztül ellenőrizhetjük a Encrypt kiszolgálókat.

megjegyzés. A TLS / HTTP ellenőrzés végrehajtása során a webhelynek elérhetőnek kell lennie a teljes DNS-névvel a HTTP (80 / TCP) és a HTTPS (443 / TCP) protokollok használatával..

A WACS segédprogram menti a tanúsítvány privát kulcsát (* .pem), magát a tanúsítványt és számos más fájlt a könyvtárba. C: \ Felhasználók \% felhasználónév% \ AppData \ Roaming \ letsencrypt-win-simple. Ezután telepíti a háttérben generált Let's Encrypt SSL tanúsítványt, és csatolja az IIS webhelyéhez. Ha egy SSL-tanúsítvány (például önaláírt) már telepítve van a webhelyen, akkor az helyébe újabb kerül.

Az IIS kezelőben nyissa meg a menüt Telepkötés a webhelyén, és győződjön meg arról, hogy a webhely által kiadott tanúsítványt használja Titkosítsuk az X3 autoritást.

Ez a tanúsítvány megbízható, ha a Windows gyökér tanúsítványait időben frissítette..

A számítógépes tanúsítványtárban a Encrypt for IIS tanúsítvány megtalálható a Webtárhely -> Tanúsítványok szakaszban.

A Windows ACME Simple új szabályt hoz létre a Windows Feladatütemezőben (win-acme-rene (acme-v02.api.letsencrypt.org)) a tanúsítvány automatikus megújításához. A feladat minden nap elindul, a bizonyítvány megújítását 60 nap elteltével végezzük. Az ütemező futtatja a következő parancsot:

C: \ inetpub \ letsencrypt \ wacs.exe --új - baseuri "https://acme-v02.api.letsencrypt.org"

Ugyanazt a parancsot használhatja a tanúsítvány manuális frissítésére is.

Az IIS webhely forgalmának átirányítása a HTTP-ről a HTTPS címre

Az összes bejövő HTTP-forgalom HTTPS-helyre történő átirányításához telepítenie kell a modult Microsoft URL átírni modul (https://www.iis.net/downloads/microsoft/url-rewrite), és ellenőrizze, hogy az SSL (SSL szükséges) opció nincs engedélyezve a webhely beállításaiban. Még be kell állítania az átirányítást a web.config fájlban:













A forgalom átirányítását konfigurálhatja az URL újraírása révén az IIS Manager grafikus felhasználói felületén keresztül. Válassza a Webhelyek -> önneve -> lehetőséget URL átírása.

Hozzon létre új szabályt Szabály hozzáadása -> Üres szabály hozzáadása.

Adjon meg egy szabálynevet és módosítsa a paraméter értékeit:

  • Kért URL -> megegyezik a mintával
  • A -> Rendszeres kifejezések használata
  • Minta -> (. *)

A Feltételek blokkban módosítsa a Logikai csoportosítás -> Összes egyezés elemet, majd kattintson a Hozzáadás gombra. meghatározza

  • Feltétel bemenet -> HTTPS
  • Ellenőrizze, hogy a bemeneti karakterlánc -> megfelel-e a mintának
  • Minta -> ^ OFF $

Most válassza ki a Művelet blokkot:

  • Művelet típusa -> Átirányítás
  • Átirányító URL -> https: // HTTP_HOST / R: 1
  • Átirányítás típusa -> Állandó (301)

Nyisson meg egy böngészőt, és próbálja meg megnyitni a webhelyet egy HTTP-címmel, automatikusan átirányítva a HTTPS URL-re.

A titkosítási igazolás használata a távoli asztali szolgáltatásokhoz

Ha a Remote Desktop Gateway / RD Web Access szolgáltatást használja a külső felhasználók csatlakoztatásához a vállalati hálózathoz, akkor a szokásos önaláírt tanúsítvány helyett a normál Let's Encrypt SSL tanúsítványt is használhatja. Lássuk, hogyan kell helyesen telepíteni a titkosított tanúsítványt a biztonságos távoli asztali szolgáltatásokhoz a Windows Server rendszeren..

Ha az RDSH szerepet emelik a Remote Desktop Gateway kiszolgálón is, akkor meg kell akadályozni, hogy az Olvasó felhasználók hozzáférjenek a könyvtárhoz, amelyben van a WACS (a példámban a c: \ inetpub \ letsencrypt), és a titkosítási igazolás (C: \ ProgramData tanúsítvány könyvtár). \ win-acme).

Ezután az RDP GW kiszolgálón futtassa a wacs.exe fájlt, a fent leírtak szerint, és válassza ki a kívánt IIS-helyet (általában az alapértelmezett webhelyet). Encrypt ad egy új tanúsítványt, amelyet telepít a webhelyre, és az automatikus igazolás-megújítási feladat megjelenik az ütemezőben.

Ezt a tanúsítványt manuálisan is exportálhatja, és az SSL-kötés révén hozzákapcsolhatja a szükséges RDS-szolgáltatásokhoz. Ezeket a lépéseket azonban 60 naponként manuálisan kell elvégeznie, amikor újra kiadjuk a Let's Encrypt tanúsítványt.

Szükségünk van egy olyan szkriptre, amely azonnal a Let's Encrypt tanúsítvány kézhezvétele (megújítása) után felhasználja az RD Gateway számára.

A win-acme projekt kész PowerShell szkripttel rendelkezik ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts), amely lehetővé teszi a kiválasztott SSL tanúsítvány telepítését a Távoli asztali szolgáltatásokhoz. A szkript fő hátránya, hogy manuálisan meg kell határoznia az új tanúsítvány ujjlenyomatát:
ImportRDGateway.ps1

A módosított szkript segítségével automatikusan megkaphatja a tanúsítvány ujjlenyomatát a megadott IIS helyről ImportRDGateway_Cert_From_IIS.ps1 (a szabványos ImportRDGateway.ps1 alapján).

Az utasítást és a módosított PowerShell-szkriptet Anton olvasó küldte el, amelyért hálát adunk neki.!

Ezt a szkriptet manuálisan is futtathatja:

powershell -File ImportRDGateway_Cert_From_IIS.ps1

Ha az RDS-átjáró a szabványos IIS webhelyen, az „Alapértelmezett webhely” alatt található, amelynek indexe 0, akkor a szkriptet változtatások nélkül használhatja.

Az IIS webhely-azonosítójának beolvasásához nyissa meg a PowerShell konzolt és futtassa:

Import-modul webes adminisztráció
Get-ChildItem IIS: Webhelyek

Kérjen listát az űrlapról:

Az Azonosító oszlop megjeleníti a webhely indexét, vonja le azt. A PowerShell-szkript 27. sorában a 0-as helyett a megadott webhely-indexet kell megadni:

$ NewCertThumbprint = (Get-ChildItem IIS: SSLBindings) [0] .Thumbprint

Most nyissa meg a win-acme-piken ütemező feladatot (acme-v02.api.letsencrypt.org), és a Művelet lapon adjon hozzá egy új feladatot, amely futtatja az ImportRDGateway_Cert_From_IIS.ps1 parancsfájlt a tanúsítvány frissítése után..

Annak elkerülése érdekében, hogy megváltoztassuk a PowerShell szkriptek végrehajtási engedélyét, felhívhatjuk a szkriptet a következő paranccsal:

PowerShell.exe -ExecutionPolicy Bypass -Fájl c: \ inetpub \ letsencrypt \ ImportRDGateway_Cert_From_IIS.ps1

Az SSL-tanúsítvány RDS-hez történő kötésének parancsfájlját a Encrypt tanúsítvány megújítása után azonnal végrehajtjuk. Ebben az esetben az RD Gateway szolgáltatás automatikusan újraindul a következő paranccsal:

Restart-Service TSGateway

A TSGateway szolgáltatás újraindításakor az összes jelenlegi felhasználói munkamenet megszakad, ezért tanácsos a tanúsítványfrissítési feladat elindításának gyakoriságát 60-szor egyszer módosítani..

Vegye figyelembe, hogy a Let's Encrypt tanúsítványokat jelenleg sok nagyvállalat webhelyein széles körben használják, és az összes böngésző megbízható. Remélem, hogy az ingyenes titkosítási hatóság sorsát nem fogja szenvedni a WoSign és a StartCom sorsa.