В този преглед ще говорим за характеристиките на инсталирането и обвързването на безплатен TLS / SSL сертификат от Let's Encrypt за сайт на IIS уеб сървъра, работещ на Windows Server 2019/2016/2012 R2.
Съдържание:
- Нека да шифроваме и ACME клиенти за Windows
- WACS клиент за инсталиране на TLS Нека да шифроваме сертификата в IIS на Windows Server
- Пренасочване на трафика на IIS сайт от HTTP към HTTPS адрес
- Използване на „Да шифроваме сертификат“ за услуги на отдалечен работен плот
Нека да шифроваме и ACME клиенти за Windows
Наличието на TLS / SSL сертификат в сайта ви позволява да защитите потребителските данни, предавани по мрежата от атаки от човек в средата и да гарантирате целостта на предаваните данни. Орган за сертифициране с нестопанска цел нека-те години Encrypt Позволява ви да издавате автоматично чрез безплатни криптографски сертификати за TLS X.509 на API за криптиране (HTTPS). Издават се само сертификати за валидиране на домейн със срок на валидност 90 дни (има ограничение от 50 сертификата за един домейн седмично). Но можете автоматично да преиздадете SSL сертификат за вашия сайт, както е планирано.
Извиква се API за автоматично издаване на сертификати автоматизирана сертификат управление околна среда (ACME) API. За Windows системи в момента има 3 от най-популярните реализации на ACME API клиент:
- полезност Windows ACME прост (WACS) - програма за команден ред за интерактивно издаване на сертификат и свързване към конкретен сайт на вашия уеб сървър IIS;
- модул Powershell ACMESharp - Powershell библиотека с много команди за взаимодействие чрез ACME API с Let's Encrypt сървъри;
- Потвърждавам - Графичен мениджър на SSL сертификати за Windows, който позволява интерактивно управление на сертификати чрез ACME API.
WACS клиент за инсталиране на TLS Нека да шифроваме сертификата в IIS на Windows Server
Най-лесният начин да получите SSL сертификат от Let's Encrypt е да използвате конзолната програма Windows ACME Simple (WACS) (преди проектът беше наречен LetsEncrypt-печалба-прост). Това е прост съветник, който ви позволява да изберете един от сайтовете, работещи на IIS и автоматично да издавате и обвързвате SSL сертификат към него.
Така че, да предположим, че имаме уебсайт на IIS, разгърнат, работещ под Windows Server 2016. Нашата задача е да го превключим в режим HTTPS, като инсталираме SSL сертификат от Let's Encrypt.
Изтеглете последната версия на WACS клиента от страницата на проекта на GitHub https://github.com/PKISharp/win-acme/releases (в моя случай това е версия v2.0.10 - win-acme.v2.0.10.444.zip файл).
Разархивирайте архива в директория на сървъра с IIS: c: \ inetpub \ letsencrypt
За да използвате Win-Acme, трябва да инсталирате .NET Framework 4.7.2 или по-нова версия (Как да разберете коя версия на .Net е инсталирана?).Отворете командния ред с права на администратор, отидете на c: \ inetpub \ letsencrypt и стартирайте wacs.Търсейки.
Това стартира интерактивния съветник за генериране на сертификат „Да шифроваме“ и да го свърже към IIS сайта. За да създадете бързо нов сертификат, изберете N: - Създаване на нови сертификати (прости за IIS).
След това трябва да изберете типа на сертификата. В нашия пример не е необходимо да използвате сертификат с псевдоними (множество SAN - Subject Alternative Name), така че просто изберете 1. Единично свързване на IIS сайт. Ако имате нужда от сертификат за Wildcard, изберете опция 3.
След това помощната програма ще покаже списък на сайтовете, работещи на IIS сървъра и ще предложи да изберете сайта, за който трябва да създадете и обвържете нов SSL сертификат.
Посочете имейл адреса си, на който ще бъдат изпращани известия за проблеми с актуализирането на сертификата на сайта и други свързани с окачването (можете да посочите множество имейли, разделени със запетаи). Остава да се съгласим с условията за ползване и Windows ACME Simple ще се свърже със сървърите Let's Encrypt и ще се опита да генерира автоматично нов SSL сертификат за вашия сайт.
Процесът на генериране и инсталиране на Let's Encrypt SSL сертификат за IIS е напълно автоматизиран.
По подразбиране валидирането на домейна се извършва в режим http-01 валидиране (SelfHosting). За целта трябва да имате запис в DNS домейна, насочен към вашия уеб сървър. Когато стартирате WACS в ръчен режим, можете да изберете валидиране на типа - 4 [HTTP-01] Създаване временен приложение в IIS (препоръчително). В този случай на уеб сървъра на IIS ще бъде създадено малко приложение, чрез което Let's Encrypt сървърите могат да валидират.
забележка. Когато извършвате TLS / HTTP проверка, вашият сайт трябва да е достъпен външно, използвайки пълното DNS име, използвайки протоколите HTTP (80 / TCP) и HTTPS (443 / TCP)..WACS помощната програма записва частния ключ на сертификата (* .pem), самия сертификат и редица други файлове в директорията C: \ Потребители \% потребителско име% \ AppData \ Роуминг \ letsencrypt-win-simple. Тогава той ще инсталира генерирания във фонов режим Let's Encrypt SSL сертификат и ще го прикачи към вашия IIS сайт. Ако на сайта вече е инсталиран SSL сертификат (например, самоподписан), той ще бъде заменен с нов.
В IIS Manager отворете менюто Обвързване на сайта за вашия сайт и се уверете, че той използва сертификат, издаден от Нека да шифроваме орган X3.
На този сертификат ще се вярва, ако сте актуализирали коренните сертификати на Windows своевременно..В магазина за компютърни сертификати нека да шифроваме за IIS сертификат можете да намерите в секцията Уеб хостинг -> Сертификати.
Windows ACME Simple създава ново правило в програмирането на задачи на Windows (win-acme-renew (acme-v02.api.letsencrypt.org)) автоматично подновяване на сертификата. Задачата започва всеки ден, подновяването на сертификата се извършва след 60 дни. Планировникът изпълнява командата:
C: \ inetpub \ letsencrypt \ wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"
Можете да използвате същата команда за ръчно актуализиране на сертификата.
Пренасочване на трафика на IIS сайт от HTTP към HTTPS адрес
За да пренасочите целия входящ HTTP трафик към HTTPS сайт, трябва да инсталирате модула Microsoft URL Препишете модул (https://www.iis.net/downloads/microsoft/url-rewrite) и се уверете, че опцията за SSL (Изисква SSL) не е активирана в настройките на сайта. Остава да конфигурирате пренасочването във файла web.config:
Можете също да конфигурирате пренасочване на трафик чрез презаписване на URL адреса чрез интерфейса на IIS Manager. Изберете Сайтове -> Вашето име -> Пренаписване на URL.
Създайте ново правило Добавете правило -> Празно правило.
Посочете име на правило и променете стойностите на параметъра:
- Изискан URL адрес -> Съответства на шаблона
- Използване -> Регулярни изрази
- Модел -> (. *)
В блока Условия променете Логическо групиране -> Съвпадение на всички и щракнете върху Добавяне. посочете
- Въвеждане на условие -> HTTPS
- Проверете дали входният низ -> съответства на шаблона
- Модел -> ^ OFF $
Сега в блока Action изберете:
- Тип на действието -> Пренасочване
- URL адрес за пренасочване -> https: // HTTP_HOST / R: 1
- Тип пренасочване -> Постоянен (301)
Отворете браузър и се опитайте да отворите вашия сайт с HTTP адрес, трябва да бъдете автоматично пренасочени към HTTPS URL.
Използване на „Да шифроваме сертификат“ за услугите на отдалечен работен плот
Ако използвате Remote Desktop Gateway / RD Web Access за свързване на външни потребители към корпоративната мрежа, можете да използвате нормалния сертификат Let's Encrypt SSL вместо обичайния самоподписан сертификат. Нека да видим как правилно да инсталираме сертификата „Да шифроваме“ за защитени услуги за отдалечен работен плот в Windows Server..
Ако ролята на RDSH също е повдигната на сървъра за отдалечен работен плот, трябва да попречите на потребителите на Read да имат достъп до директорията, в която имате WACS (в моя пример, c: \ inetpub \ letsencrypt) и сертификата Да криптираме (C: \ ProgramData сертификат) \ win-acme).След това на сървъра на RDP GW, стартирайте wacs.exe, както е описано по-горе, и изберете желания IIS сайт (обикновено уеб сайт по подразбиране). Нека Encrypt ви дава нов сертификат, който е инсталиран за уебсайта и задачата за автоматично подновяване на сертификат се появява в планировчика.
Можете ръчно да експортирате този сертификат и да го свържете към необходимите RDS услуги чрез SSL обвързване. Но ще трябва да изпълнявате тези стъпки ръчно на всеки 60 дни, когато преиздавате сертификат „Да шифроваме“.
Нуждаем се от скрипт, който веднага след получаване (подновяване) на сертификата Let's Encrypt го използва за RD Gateway.
Проектът win-acme има готов сценарий за PowerShell ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts), което ви позволява да инсталирате избрания SSL сертификат за отдалечени услуги на работния плот. Основният недостатък на скрипта е, че трябва ръчно да посочите пръстовия отпечатък на новия сертификат:ImportRDGateway.ps1
За автоматично получаване на отпечатъка на сертификата от указания IIS сайт, използвайте модифицирания скрипт ImportRDGateway_Cert_From_IIS.ps1 (базирана на стандартен ImportRDGateway.ps1).
Инструкцията и модифициран скрипт на PowerShell бяха изпратени от нашия читател Антон, за което му изпращаме лъчи на благодарност!Можете да стартирате ръчно този скрипт:
powershell -File ImportRDGateway_Cert_From_IIS.ps1
Ако вашият RDS шлюз живее на стандартния IIS сайт „Уеб сайт по подразбиране“ с индекс 0, можете да използвате скрипта без промени.
За да получите идентификатора на сайта в IIS, отворете конзолата PowerShell и стартирайте:Импорт-модул WebAdministration
Get-ChildItem IIS: Сайтове
Вземете списък на формата:
Идентификационната колона показва индекса на вашия сайт, изважда го от него. Резултатът на вашия сайт трябва да бъде посочен вместо 0 в 27-ия ред на скрипта PowerShell:
$ NewCertThumbprint = (Get-ChildItem IIS: SSLBindings) [0] .Thumbprint
Сега отворете задачата за планиране win-acme-подновяване (acme-v02.api.letsencrypt.org) и в раздела Действие добавете нова задача, която изпълнява скрипта ImportRDGateway_Cert_From_IIS.ps1 след актуализиране на сертификата.
За да не промените разрешенията за изпълнение на скриптове на PowerShell, можете да извикате скрипта с командата:
PowerShell.exe -ExecutionPolicy Bypass -File c: \ inetpub \ letsencrypt \ ImportRDGateway_Cert_From_IIS.ps1
Сега скриптът за обвързване на SSL сертификата с RDS ще бъде изпълнен веднага след подновяването на сертификата Нека Шифроваме. В този случай услугата RD Gateway автоматично се рестартира с командата:
Restart-Service TSGateway
Когато услугата TSGateway се рестартира, всички текущи потребителски сесии са прекъснати, така че е препоръчително да промените честотата на стартиране на заданието за актуализация на сертификата 1 път на 60 дни.
Обърнете внимание, че сертификатите Let's Encrypt понастоящем се използват широко на уебсайтовете на много големи компании и се доверяват на всички браузъри. Надявам се, че съдбата на органа за безплатни сертификати Let's Encrypt не претърпява съдбата на WoSign и StartCom.