V této recenzi budeme hovořit o funkcích instalace a vazby bezplatného certifikátu TLS / SSL z Let's Encrypt pro web na webovém serveru IIS spuštěném v systému Windows Server 2019/2016/2012 R2..
Obsah:
- Pojďme šifrovat a ACME klienty pro Windows
- Klient WACS k instalaci TLS Pojďme šifrovat certifikát ve službě IIS na Windows Server
- Přesměrování provozu serveru IIS z HTTP na adresu HTTPS
- Používáme šifrovací certifikát pro služby vzdálené plochy
Pojďme šifrovat a ACME klienty pro Windows
Přítomnost certifikátu TLS / SSL na místě vám umožňuje chránit uživatelská data přenášená po síti před útoky typu „člověk uprostřed“ a garantovat integritu přenášených dat. Nezisková certifikační autorita Nechat's Šifrovat Umožňuje automaticky vydávat prostřednictvím API zdarma kryptografické certifikáty TLS X.509 pro šifrování (HTTPS). Vydávají se pouze certifikáty pro ověření domény s dobou platnosti 90 dní (pro jednu doménu týdně je omezeno 50 certifikátů). Můžete však automaticky znovu vydat certifikát SSL pro svůj web podle plánu.
Volá se API pro automatické vydávání certifikátů Automatizované Certifikát Řízení Prostředí (ACME) API. V systémech Windows jsou v současné době 3 nejoblíbenější implementace klientů ACME API:
- Nástroj Windows ACME Jednoduché (WACS) - obslužný program příkazového řádku pro interaktivní vydání certifikátu a jeho propojení s konkrétním webovým serverem IIS;
- Modul Powershell ACMESharp - Knihovna Powershell s mnoha příkazy pro interakci prostřednictvím rozhraní ACME API se servery Let's Encrypt;
- Certifikovat - Grafický správce certifikátů SSL pro Windows, který umožňuje interaktivní správu certifikátů prostřednictvím rozhraní API ACME.
Klient WACS k instalaci TLS Pojďme šifrovat certifikát ve službě IIS na Windows Server
Nejjednodušší způsob, jak získat certifikát SSL od Let's Encrypt, je použití obslužného programu konzoly Windows ACME Simple (Wacs) (dříve byl projekt nazýván Letsencrypt-Vyhrajte-Jednoduché). Je to jednoduchý průvodce, který vám umožní vybrat jeden z webů spuštěných ve službě IIS a automaticky k němu vydat a připojit certifikát SSL.
Předpokládejme tedy, že máme webovou stránku ve službě IIS, na níž je spuštěn systém Windows Server 2016. Naším úkolem je přepnout jej do režimu HTTPS instalací certifikátu SSL z Let's Encrypt.
Stáhněte si nejnovější verzi klienta WACS ze stránky projektu na adrese GitHub https://github.com/PKISharp/win-acme/releases (v mém případě je to verze v2.0.10 - win-acme.v2.0.10.444.zip).
Rozbalte archiv do adresáře na serveru pomocí služby IIS: c: \ inetpub \ letsencrypt
Abyste mohli používat Win-Acme, musíte nainstalovat .NET Framework 4.7.2 nebo vyšší (Jak zjistit, která verze .Net je nainstalována?).Otevřete příkazový řádek s oprávněními správce, přejděte na c: \ inetpub \ letsencrypt a spusťte wacs.exe.
Tím se spustí interaktivní průvodce pro generování certifikátu Let's Encrypt a jeho navázání na web IIS. Chcete-li rychle vytvořit nový certifikát, vyberte N: - Vytvořit nové certifikáty (jednoduché pro IIS).
Pak musíte vybrat typ certifikátu. V našem příkladu není třeba používat certifikát s aliasy (více SAN - alternativní název subjektu), takže stačí vybrat 1. Jediná vazba místa IIS. Pokud potřebujete certifikát Wildcard, vyberte možnost 3.
Dále obslužný program zobrazí seznam webů spuštěných na serveru IIS a nabídne výběr webů, pro které je třeba vytvořit a svázat nový certifikát SSL.
Uveďte svou e-mailovou adresu, na kterou budou zasílána upozornění na problémy s aktualizací certifikátu webu a další informace o zavěšení (můžete zadat více e-mailů oddělených čárkami). Zbývá souhlasit s podmínkami použití a systém Windows ACME Simple se připojí k serverům šifrování šifrování a pokusí se automaticky vygenerovat nový certifikát SSL pro váš web..
Proces generování a instalace Let's Encrypt SSL certificate for IIS je plně automatizovaný.
Ve výchozím nastavení je ověření domény prováděno v režimu http-01 ověření (SelfHosting). Chcete-li to provést, musíte mít v doméně DNS záznam ukazující na váš webový server. Při spouštění WACS v ručním režimu můžete vybrat ověření typu - 4 [http-01] Vytvořit dočasný aplikace v IIS (doporučeno). V takovém případě bude na webovém serveru IIS vytvořena malá aplikace, pomocí které mohou ověřit servery šifrování šifrování.
Poznámka:. Při ověřování TLS / HTTP by měl být váš web přístupný externě pomocí úplného názvu DNS pomocí protokolů HTTP (80 / TCP) a HTTPS (443 / TCP).Obslužný program WACS uloží soukromý klíč certifikátu (* .pem), samotný certifikát a řadu dalších souborů do adresáře C: \ Users \% username% \ AppData \ Roaming \ letsencrypt-win-simple. Poté nainstaluje certifikát Let's Encrypt SSL generovaný na pozadí a připojí jej k vašemu webu IIS. Pokud je na webu již nainstalován certifikát SSL (například self-signed), bude nahrazen novým.
Ve Správci služby IIS otevřete nabídku Vazba na web pro váš web a ujistěte se, že používá certifikát vydaný společností Pojďme zašifrovat autoritu X3.
Tento certifikát bude důvěryhodný, pokud jste včas aktualizovali kořenové certifikáty Windows..V úložišti certifikátů počítačů, Pojďme se šifrovat pro IIS certifikát najdete v sekci Webhosting -> Certifikáty.
Windows ACME Simple vytvoří nové pravidlo v Plánovači úloh systému Windows (win-acme -enew (acme-ctv.api.letsencrypt.org)) automaticky obnovit certifikát. Úloha začíná každý den, obnovení certifikátu se provádí po 60 dnech. Plánovač spustí příkaz:
C: \ inetpub \ letsencrypt \ wacs.exe --renew --baseuri "https://acme-ctv.api.letsencrypt.org"
Stejným příkazem můžete ručně aktualizovat certifikát.
Přesměrování provozu serveru IIS z HTTP na adresu HTTPS
Chcete-li přesměrovat veškerý příchozí provoz HTTP na web HTTPS, musíte nainstalovat modul Microsoft URL Přepsat Modul (https://www.iis.net/downloads/microsoft/url-rewrite) a ujistěte se, že v nastavení webu není povolena možnost SSL (Vyžadovat SSL). Zbývá nakonfigurovat přesměrování v souboru web.config:
Můžete také nakonfigurovat přesměrování provozu prostřednictvím přepsat URL pomocí GUI IIS Manager. Zvolte Sites -> yoursitename -> Přepsat URL.
Vytvořit nové pravidlo Přidat pravidlo -> Prázdné pravidlo.
Zadejte název pravidla a změňte hodnoty parametrů:
- Požadovaná adresa URL -> Odpovídá vzoru
- Používání -> Regulární výrazy
- Vzor -> (. *)
V bloku Podmínky změňte Logické seskupení -> Shoda vše a klikněte na Přidat. Uveďte
- Vstup podmínek -> HTTPS
- Zkontrolujte, zda vstupní řetězec -> Odpovídá vzoru
- Vzor -> ^ OFF $
Nyní v bloku Akce vyberte:
- Typ akce -> Přesměrování
- Adresa URL přesměrování -> https: // HTTP_HOST / R: 1
- Typ přesměrování -> Permanentní (301)
Otevřete prohlížeč a pokuste se otevřít svůj web s HTTP adresou, měli byste být automaticky přesměrováni na HTTPS URL.
Používáme šifrovací certifikát pro služby vzdálené plochy
Pokud k připojení externích uživatelů k podnikové síti používáte bránu Remote Desktop Gateway / RD Web Access, můžete místo obvyklého certifikátu s vlastním podpisem použít běžný šifrovací certifikát SSL. Podívejme se, jak správně nainstalovat certifikát Pojďme šifrovat zabezpečené služby Vzdálená plocha v systému Windows Server..
Pokud je role RDSH také vyvolána na serveru brány vzdálené plochy, musíte zabránit čtení uživatelů v přístupu do adresáře, ve kterém máte WACS (v mém příkladu c: \ inetpub \ letsencrypt) a certifikátu Let's Encrypt (C: \ ProgramData certificate) \ win-acme).Poté na serveru RDP GW spusťte wacs.exe, jak je popsáno výše, a vyberete požadovaný web IIS (obvykle výchozí web). Pojďme zašifrovat vám nový certifikát, který je nainstalován pro web a úloha pro automatické obnovení certifikátu se objeví v plánovači.
Tento certifikát můžete ručně exportovat a svázat jej s požadovanými službami RDS prostřednictvím vazby SSL. Při opakovaném vydávání certifikátu Let's Encrypt však budete muset tyto kroky provést každých 60 dní ručně.
Potřebujeme skript, který by ihned po obdržení (obnovení) certifikátu Let's Encrypt použil pro bránu RD.
Projekt win-acme má hotový skript PowerShell ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts), což vám umožní nainstalovat vybraný certifikát SSL pro službu Vzdálená plocha. Hlavní nevýhoda skriptu je v tom, že musíte ručně zadat otisk prstu nového certifikátu:ImportRDGateway.ps1
Chcete-li automaticky získat otisk certifikátu z určeného webu IIS, použijte upravený skript ImportRDGateway_Cert_From_IIS.ps1 (na základě standardního ImportRDGateway.ps1).
Instrukce a upravený skript PowerShell poslal náš čtenář Anton, za který mu posíláme vděčné paprsky!Tento skript můžete spustit ručně:
powershell -File ImportRDGateway_Cert_From_IIS.ps1
Pokud vaše brána RDS žije na standardním webu IIS „Default Web Site“ s indexem 0, můžete skript použít beze změn.
Chcete-li získat ID webu ve službě IIS, otevřete konzolu PowerShell a spusťte:Import webových modulů pro správu
Get-ChildItem IIS: Weby
Seznam formulářů:
Sloupec ID zobrazuje index vašeho webu, odečte jej od něj. Výsledný index vašeho webu by měl být zadán namísto 0 ve 27. řádku skriptu PowerShell:
$ NewCertThumbprint = (Get-ChildItem IIS: SSLBindings) [0] .Tumbprint
Nyní otevřete úlohu plánovače win-acme -enew (acme-UNTER.api.letsencrypt.org) a na kartě Akce přidejte nový úkol, který po aktualizaci certifikátu spustí skript ImportRDGateway_Cert_From_IIS.ps1..
Aby nedošlo ke změně oprávnění pro spouštění skriptů PowerShell, můžete skript zavolat příkazem:
PowerShell.exe - ExecutionPolicy Bypass - File c: \ inetpub \ letsencrypt \ ImportRDGateway_Cert_From_IIS.ps1
Nyní bude skript pro vazbu SSL certifikátu k RDS spuštěn ihned po obnovení certifikátu Let's Encrypt. V tomto případě se služba RD Gateway automaticky restartuje příkazem:
Restart-Service TSGateway
Při restartování služby TSGateway dojde k přerušení všech aktuálních relací uživatele, takže je vhodné změnit frekvenci spouštění úlohy aktualizace certifikátu jednou za 60 dní.
Upozorňujeme, že certifikáty Pojďme šifrovat jsou v současné době široce používány na webových stránkách mnoha velkých společností a jsou důvěryhodné všemi prohlížeči. Doufám, že osud bezplatné certifikační autority Pojďme šifrovat netrpí osudem WoSign a StartCom..