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.