Iis получение клиентского сертификата


Содержание

Установка бесплатного TLS/SSL сертификата Let’s Encrypt в IIS в Windows Server 2020/2012 R2

В этом обзоре мы расскажем об особенностях установки и привязки бесплатного TLS/SSL сертификата от Let’s Encrypt для сайта на веб сервере IIS, запущенного на Windows Server 2020/2020/2012 R2.

Let’s Encrypt и ACME клиенты для Windows

Наличие TLS/SSL сертификата у сайта позволяет защитить данные пользователей, передаваемые по сети от атак человек-посередине (man-in-the-middle) и гарантировать целостность переданных данных. Некоммерческий центр сертификации Let’s Encrypt позволяет в автоматическом режиме через API выпускать бесплатные криптографические TLS сертификаты X.509 для шифрования (HTTPS) . Выдаются только сертификаты для валидации доменов (domain validation), со сроком действия 90 дней (есть ограничение – 50 сертификатов для одного домена в неделю). Но вы можете автоматически перевыпускать SSL сертификат для своего сайта по расписанию.

API интерфейс, позволяющий автоматически выпускать сертификаты называется Automated Certificate Management Environment (ACME) API. Для Windows систем на данный момент имеется 3 самых популярных реализации клиента ACME API:

  • Утилита WindowsACMESimple(WACS) – утилита командной строки для интерактивного выпуска сертификата и привязки его к определенному сайту на вашем веб сервере IIS;
  • Модуль PowershellACMESharp – библиотека Powershell с множеством команд для взаимодействия через ACME API с серверами Let’s Encrypt;
  • Certify – графический менеджер SSL сертификатов для Windows, позволяет интерактивно управления сертификатами через ACME API.

Клиент WACS для установки TLS сертификата Let’s Encrypt в IIS на Windows Server

Самый простой способ получить SSL сертификат от Let’s Encrypt — воспользоваться консольной утилитой Windows ACME Simple (WACS) (ранее проект назывался LetsEncrypt-Win-Simple). Она представляет собой простой мастер, который позволяет выбрать один из сайтов, запущенных на IIS, и автоматически выпустить и привязать к нему SSL сертификат.

Итак, предположим у нас имеется веб сайт на IIS, развёрнутый под управлением Windows Server 2020. Наша задача, переключить его в 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

Откройте командную строку с правами администратора, перейдите в каталог c:\inetpub\ letsencrypt и запустите wacs.exe.

Запустится интерактивный мастер генерации сертификата Let’s Encrypt и привязки его к сайту IIS. Чтобы быстро создать новый сертификат выберите N: — Create new certificates (simple for IIS).

Затем нужно выбрать тип сертификата. В нашем примере нет необходимости использовать сертификат с псевдонимами (несколькими SAN — Subject Alternative Name), поэтому достаточно выбрать пункт 1. Single binding of an IIS site. Если вам нужен Wildcard-сертификат, выберите опцию 3.

Далее утилита выведет список сайтов, запущенных на сервере IIS и предложит выбрать сайт, для которого нужно создать и привязать новый SSL сертификат.

Укажите ваш email, на который будут отправляться уведомления о проблемах с обновлением сертификата сайта и другие о повешения (можно указать несколько email через запятую). Осталось согласится с условиями использования и Windows ACME Simple подключится к серверам Let’s Encrypt и попытается автоматически сгенерировать новый SSL сертификат для вашего сайта.

Процесс генерации и установки SSL сертификата Let’s Encrypt для IIS полностью автоматизирован.

По умолчанию выполняется валидация домена в режиме http-01 validation (SelfHosting). Для этого нужно, чтобы в DNS домена имелась запись, указывающая на ваш веб сервера. При запуске WACS в ручном режиме можно выбрать валидацию типа — 4 [http-01] Create temporary application in IIS (recommended). В этом случае на веб-сервере IIS будет создано небольшое приложение, через которое сервера Let’s Encrypt смогут провести валидацию.

Утилита WACS сохраняет закрытый ключ сертификата (*.pem), сам сертфикат и ряд других файлов в каталог C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple. Затем она в фоновом режиме установит сгенерированный SSL сертификат Let’s Encrypt и привяжет его к вашему сайту IIS. Если на сайте уже установлен SSL сертификат (например, самоподписанный), он будет заменен новым.

В IIS Manager откройте меню Site Binding для вашего сайта и убедитесь, что для него используется сертификат, выданный Let’s Encrypt Authority X3.

В хранилище сертификатов компьютера сертификат Let’s Encrypt для IIS вы можете найти в разделе Web Hosting -> Certificates.

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 Rewrite Module (https://www.iis.net/downloads/microsoft/url-rewrite), и убедиться, что в настройках сайта не включена опция обязательного использования SSL (Require SSL). Осталось настроить редирект в файле web.config:

Также вы можете настроить перенаправление трафика через URL Rewrite через графический интерфейс IIS Manager. Выберите Sites -> yoursitename -> URL Rewrite.

Создайте новое правило Add Rule -> Blank rule.

Укажите имя правила и измените значения параметров:

  • Requested URL -> Matches the Pattern
  • Using -> Regular Expressions
  • Pattern -> (.*)

В блоке Conditions измените Logical Grouping -> Match All и нажмите Add. Укажите

  • Condition input ->
  • Check if input string -> Matches the Pattern
  • Pattern -> ^OFF$

Теперь в блоке Action выберите:

  • Action Type -> Redirect
  • Redirect URL -> https:///
  • Redirect type -> Permanent (301)

Откройте браузер и попробуйте открыть ваш сайт по HTTP адресу, вас должно автоматически перенаправить на HTTPS URL.

Отметим, что сертификаты Let’s Encrypt в настоящий момент широко используются на сайтах многих крупных компаний и им доверяют все браузеры. Надеюсь, что судьба бесплатного центра сертификации Let’s Encrypt не постигнет участь WoSign и StartCom.

Как выдать удостоверяющие сертификаты в локальной сети для внутренних сервисов в IIS (не self-signed)?

Необходимо в локальной сети из компьютеров на базе Windows 10 Pro, объединенных в рабочую группу (не в домене) и не светящиеся в интернет, настроить IIS сертификаты на одном из них таким образом, чтоб обращение с других компьютеров через браузер, последние подтверждали подлинность сертификата и не выводили предупреждение об untrusted сайте.

Self-signed сертификаты не хотелось бы, так как копировать из на все оставшиеся компьютеры в сети не вариант (их может быть много, добавляться новые машины и т.п)

Идеально было бы при установки сервиса в IIS установщик запросит (выдаст, сгенерит? ) новый сертификат (если такого еще не установлено в IIS), который будет trusted для остальных машин в локальной сети без копирования это сертификата на все машины.

В сети домена нет, windows server тоже нет, только все Windows 10 Pro.

Моих знаний не хватает, что б правильно понять, как правильно реализовать такую систему. Хотелось бы просто получить общую информацию что нужно сделать\установть, дальше смогу разобраться сам.

Из найденной информации на данный момент мне показалось, что необходимо развернуть в локальной сети PKI сервис и через него запрашивать (API) сертификаты (или хотя б вручную сгенерировать и передать на сервер). Если это так, то:
— должен ли этот сервер иметь свой собственный сертификат для подписи тех, что он выдает другим серверам?
— если его надо сначала будет скопировать на все клиентские машины, то это тоже не вариант, так как он не отличается от self-signed с последующим копированием на все машины? Или я могу использовать любой свой с Let’s Encrypt и от него далее по цепочке генерить дочерние?
— должен ли PKI сервис быть все время запущен, чтоб с других машин браузеры могли бы запрашивать его на валидность внутренних сертификатов?
— будет ли выданный PKI сертификат выдан на имя сервера в интранет (например: SERVER001 или SERVER001.local)?
— PKI должен запускаться на WINDOWS 10 (докер, VM боюсь не вариант)

Или существуют другие решения данной задачи.

Спасибо за советы

  • Вопрос задан более года назад
  • 1022 просмотра

Все сертификаты рутовых УЦ — самоподписанные. Сюрприз, да? :-) Если на пальцах, то доверие основывается на том, что «ну, это самоподписанный сертификат, но это же уважаемая контора. «. Поэтому в ОС и в некоторых браузерах (Firefox, он своим хранилищем пользуется. Хром или IE — пользуют системные, на винде, по крайней мере) есть хранилище корневых сертификатов удостоверяющих центров, которые (сертификаты) являются доверенными.

Есть удостоверяющие центры, сертификаты которых подписаны другими удостоверяющими центрами. Но на самом верху цепочки доверия — всё равно самоподписанные серты.

Вам нужен свой PKI, это факт. Если нет желания/возможности делать УЦ на базе Microsoft Certification services, возьмите пакет easyrsa, подписывайте сертификаты им.

По фэншую схема делается так — создаётся корпоративный root CA (корневой удостоверяющий центр), с самоподписанным сертификатом, на каком-нибудь, например, ноутбуке старом. Потом генерируется ещё один ключ — для подчинённого УЦ (sub-CA). Этот ключ подписывается сертом вашего root CA (с ноутбука), после чего ноутбук выключается и прячется в сейф. А вот уже с сертом sub-CA вы подписываете все серты для ваших серверов и сервисов. Ключи и CSR должны генерироваться только на тех хостах, где они и будут использоваться. Это если по фэншую. Но если вам просто важен замочек в строке адреса и отсутствие ругани, можно обойтись одним root CA, без sub-CA, а генерить ключи можно тем же самым easy-rsa, перенося потом ключ и серт на необходимые вам сервера с IIS.

Сертификаты вашего root CA и sub-CA нужно будет установить в хранилища всех ваших десктопных компов, серверов и т. п. А также в хранилища браузеров, если у вас используются браузеры, которые не смотрят в системные хранилища. Это легко делается доменной политикой, но ввиду отсутствия у вас домена — можно и скриптануть. Использовать certutil, например (если речь про винду, опять-таки).

А IIS у вас там, Apache или nginx, или другие сервисы, которые умеют в TLS — это дело десятое, от этого схема генерации и выдачи сертификатов не меняется.

Поэтому в ОС и в некоторых браузерах (Firefox, он своим хранилищем пользуется. Хром или IE — пользуют системные, на винде, по крайней мере)

Не знаете для Firefox тогда, если я установлю свой trusted сертификат в системное хранилище, то он его не будет считать даверенным?

Сертификаты вашего root CA и sub-CA нужно будет установить в хранилища всех ваших десктопных компов, серверов и т. п. А также в хранилища браузеров, если у вас используются браузеры, которые не смотрят в системные хранилища.

Iis получение клиентского сертификата

Что такое сертификат?

Сертификат это контейнер который может содержать открытый (PUBLIC) и закрытый (PRIVATE) ключи, а также ряд полей информационного характера.

В системе сертификаты хранятся в Хранилище сертификатов (Sertificate Store). Хранилище сертификатов на локальном компьютере называется «my». Просмотреть содержимое хранилища можно с помощью MMC добавив оснастку «Sertificates». Кроме того сертификаты могут быть привязаны к компьютеру (LocalMachine), или к учетной записи (CurrentUser). От этого зависит у кого будет доступ к сертификатам, у пользователей компьютера или у владельца учетной записи.

Из хранилища можно выгрузить сертификат в файл .CER или .PFX. MMC | Sertificates | Сертификат (выбрать правой кнопкой) | Все задачи | Экспорт. Экспорт закрытого ключа может быть запрещен. В таком случае узнать его уже никак не удастся. Эта опция доступна только на этапе установки или создания ключа в хранилище «Пометить этот ключ как экспортируемый».

  • .CER — плохо защищен и не может содержить закрытого ключа, только открытый
  • .PFX — может содержать как закрытый так и открытый ключ

Step 1: Install SSL certificate

  1. Open the Internet Services Manager(IIS): Click Start >All Programs >Administrative Tools >Internet Information Services (IIS) Manger
  2. Under Web Sites, right-click your web site and select Properties
  3. Click the Directory Security tab
  4. Under Secure Communications, click Server Certificate
  5. The Web Site Certificate Wizard will open, click Next
  6. Choose Process the Pending Requestand Install the Certificate, then click Next
    Important: The pending request must match the response file. If you deleted the pending request in error you must generate a new CSR and replace this certificate.
  7. Select the location of the certificate response file, and then click Next
  8. Select the SSL Port. The default port is 443
  9. Read the summary screen to be sure that you are processing the correct certificate and then clickNext
  10. At the confirmation screen, verify the information and click Next

Создание и установка самоподписанного сертификата (Утилита selfssl.exe для SSL в IIS )

В свойствах сайта, на вкладке DirectorySecurity в разделе «Secure communications» можно поставить галочку «Requere secure channel (SSL)», а на вкладке «Web Site» можно задать
SSL port: 443 (по-умолчанию). Еще нужно для этого веб узла создать Self-Signed сертификат или купить настоящий у конторы (ssl.ru например). Self-Signed сертификат создается утилитой selfssl.exe, которая качается с микрософта, в составе «IIS 6.0 Resource Kit Tools (IIS 6.0)». Эта утилита умеет сама создавать и прикреплять сертификат к Web узлу в IIS, по ID веб узла (Site ID). Этот ID можно узнать если в IIS выбрать папку «Web Sites» в режиме просмотра детальной информации (Меню->Вид->Таблица), колонка Identifier. Утилита должна спросить заменить ли существующий сертификат у сайта, на что надо ответить ДА (y). Убедиться что сертификат назначен можно в свойствах сайта на вкладке «DirectorySecurity», должна стать активной кнопка «View Certificate. «, нажав на которую можно посмотреть данные сертификата, а также экспортировать его в файл — например .cer

пример вызова утилиты, для сайта с Site >

Утилита makecert.exe (для ЭЦП)

Утилита входит в состав MS Visual Studio и позволяет генерировать сертификаты:

makecert.exe -r -pe -sky exchange -ss my -sr CurrentUser -n «CN=Uralsib.Mso.DigitalSign»

Так можно создавать тестовые сертификаты непосредственно в хранилище сертификатов на локальной машине «LocalMachine» или для текущего пользователя «CurrentUser». Поле «Субъект» (Subject) будет заполнено именем «CN=MyCompany.MyProduct.DigitalSign». И имя «MyCompany.MyProduct.DigitalSign» будет выбрано в качестве наименования. Остальные флаги разрешают экспортировать закрытый ключ в файл .PFX

— r создать самоподписанный сертификат
— pe — включать закрытый ключ в сертификат, и пометить его как экспортируемый (т.е. из хранилища сертификат можно будет вытащить вместе с закрытым ключом)
— n «CN=Uralsib.Mso.DigitalSign» — имя сертификата, в формате X.500
— sr CurrentUser — сертификаты могут устнавливаются для всего компьютера LocalMachine или только для учетной записи CurrentUser
— ss my — хранилище сертификатов. Локальное хранилище на локальном компьютере называется my

IIS 7 — Генерация запроса на сертификат

Генерация запроса на получение сертификата:

IIS Manager | выбрать узел сервера, а не сайта | Server Sertificates | Create Certificate Request.

который предварительно должен быть инсталлирован в виндовс через консоль

MMC -> Добавить оснастку -> Сертификаты -> Local Computer -> Personal

Чтобы сайт работал через HTTPS в IIS 7.0 нужно прикрепить к узлу сертификат SSL.Делается это

IIS Manager | выбрать Веб-узел | Bindings.

добавляется запись HTTPS и для нее выбирается сертификат,

Как вручную установить сертификат SSL на сервер IIS 8

После того как ваш запрос будет одобрен, вы сможете скачать сертификат из диспетчера SSL и установить его на сервере IIS 8.

Скопируйте файлы сертификата на сервер

  1. Найдите на сервере папку, в которой хранятся файлы сертификатов и ключей, и загрузите в нее промежуточный сертификат (с названием вида gd_iis_intermediates.p7b ) и основной сертификат (файл в формате .crt со случайным названием).

Добавьте оснастку сертификата в консоли управления Microsoft (MMC)

  1. Откройте меню Start (Пуск) и нажмите Run (Выполнить).
  2. Введите mmc в строке и нажмите ОК.
  3. В меню File (Файл) выберите Add/Remove Snap-in (Добавить или удалить оснастку).
  4. В открывшемся окне нажмите кнопку Add (Добавить).
  5. Нажмите Certificates (Сертификаты), а затем Add (Добавить).
  6. Выберите Computer account (Учетной записи компьютера) и нажмите Next (Далее).
  7. Нажмите Local computer (Локальный компьютер), а затем Finish (Готово).
  8. В окне Add Standalone Snap-in (Добавить изолированную оснастку) нажмите Close (Закрыть).
  9. В окне Add/Remove Snap-in (Добавить или удалить оснастку) нажмите ОК.

Импортируйте промежуточный сертификат SSL

  1. В консоли MMC нажмите , чтобы открыть раздел Certificates (Local Computer) (Сертификаты (локальный компьютер)).
  2. Нажмите правой кнопкой мыши на папку Intermediate Certification Authorities (Промежуточные центры сертификации). Наведите указатель мыши на пункт All Tasks (Все задачи) и выберите Import (Импорт).
  3. В открывшемся окне нажмите Next (Далее).
  4. Выберите Browse (Обзор). Найдите файл загруженного промежуточного сертификата и нажмите Open (Открыть).
  5. Нажмите Next (Далее). Проверьте данные сертификата и выберите Finish (Готово).
  6. Закройте уведомление об успешном импорте.

Установите сертификат SSL

  1. Откройте меню Start (Пуск) и нажмите Run (Выполнить).
  2. Введите inetmgr в строке и нажмите ОК, чтобы запустить диспетчер служб IIS.
  3. На панели Connections (Подключения) слева выберите свой сервер.
  4. На главной панели дважды нажмите на пункт Server Certificates (Сертификаты сервера) в разделе IIS.
  5. На панели Actions (Действия) справа выберите Complete Certificate Request (Запрос установки сертификатов).
  6. В появившемся окне нажмите . Найдите файл загруженного основного сертификата и выберите Open (Открыть).
  7. Добавьте понятное имя, по которому будет легко находить сертификат.
  8. В качестве хранилища для сертификата выберите Personal (Личное) и нажмите ОК.

Привяжите сертификат SSL

  1. На панели Connections (Подключения) слева нажмите , чтобы открыть папку Sites (Сайты).
  2. Выберите веб-сайт, на который вы хотите установить сертификат SSL.
  3. На панели Actions (Действия) справа найдите раздел Edit Site (Изменение веб-сайта) и выберите Bindings (Привязки).
  4. В открывшемся окне нажмите Add (Добавить) и заполните необходимые поля:
    • В поле Type (Тип) выберите https.
    • В поле IP Address (IP-адрес) выберите All Unassigned (Все неназначенные).
    • В поле Port (Порт) введите 443.
    • Поле Host name (Имя узла) оставьте пустым.
    • В поле SSL Certificate (Сертификат SSL) выберите недавно установленный сертификат SSL.
  5. Подтвердите действие, нажав ОК. В окне Site Bindings (Привязки сайта) выберите Close (Закрыть).

Перезапустите IIS

  1. На панели Actions (Действия) справа найдите раздел Manage Site (Управление веб-сайтом) и выберите Restart (Перезапустить).

Что дальше

  • Чтобы убедиться, что сертификат SSL установлен, воспользуйтесь нашим инструментом проверки.

Статьи по теме

Примечание. Для вашего удобства мы предоставляем инструкции по использованию некоторых сторонних продуктов. Но это не означает, что мы их рекомендуем. GoDaddy не оказывает поддержку по этим продуктам, а также не несет ответственности за их работу. Товарные знаки и логотипы третьих сторон являются зарегистрированными торговыми марками их владельцев. Все права защищены.

Клиентские сертификаты на IIS — не уверен, что я их получу — возможно, пожалуйста?

Ищите рекомендации относительно использования сертификатов клиентов для ретро-управления доступом к существующему приложению.

Наша компания имеет существующее приложение интрасети (классический ASP/IIS), которое мы лицензируем для других. До сих пор он размещался внутри каждой организации, которая его использовала, а безопасность состояла из «если вы имеете доступ к интрасети, доступной для приложения».

Теперь я ищу способ разместить это приложение извне, чтобы другие организации, которые не хотят его размещать, могут использовать его (каждый новый клиент будет иметь собственную установку).

У всех пользователей новой организации будет сертификат клиента, поэтому я хотел бы использовать материал «Требовать сертификат клиента» в IIS. Это позволяет вам сказать: «Если Организация = BigClientX, тогда притворяйтесь, что они локальные пользователи».

Я бы предпочел что-то, что говорит: «Если Организация = BigClientX, то пусть они будут обращаться к ресурсам в virtualdirectoryZ, иначе игнорируют их».

Я был бы очень рад купить аддон (возможно, фильтр ISAPI?), который сделает это для меня, если это лучший подход. Любые советы/истории войны будут приветствоваться.

certificate iis asp-classic digital-certificate

2 ответа

0 Решение JohnW [2009-03-04 00:24:00]

Вероятно, вы захотите это сделать. клиентские сертификаты действительно предназначены для второго фактора аутентификации, но не для первичного источника. Чтобы сказать это по-другому, вам все равно нужно настроить приложение для базовой или автоматической проверки подлинности.

Технология открытых/закрытых ключей — это солидный рок. Однако вам нужна очень зрелая ИТ-организация, которая занимается управлением жизненным циклом сертификата. Если у вас этого нет, вы получите невыполненные сценарии сбоев, поскольку срок действия сертификата истек, не был скопирован на новый компьютер и т.д.

Это особенно верно в вашем сценарии, когда ваше приложение работает в Интернете (в сценарии «хостинг» ) — вы мало контролируете выдачу сертификатов своим пользователям.

0 msulis [2009-02-28 09:48:00]

Я сделал что-то подобное.

Создайте сертификаты внутри вашего корпоративного контроллера домена. Экспортируйте их как формат PFX для распространения, так и формат CER для импорта в IIS.

Распространяйте экспорт формата PFX вместе с сертификатом CA для вашего DC, поэтому ваши клиенты будут «доверять» вашему CA.

Теперь в свойствах приложения IIS перейдите на вкладку «Безопасность каталога», а в разделе «Безопасная связь» нажмите «Изменить». В нем нажмите «Принять сертификаты клиента», «Включить сопоставление сертификатов клиентов», затем «Изменить».

На вкладке 1-to-1 нажмите «Добавить» и импортируйте файл CER. Введите учетную запись, на которую вы хотите сопоставить этот сертификат.

Что касается «позволить им получить доступ к ресурсам», я бы посоветовал сделать это с помощью учетной записи пользователя, с которой они сопоставлены, то есть вы можете предоставить доступ к ресурсам на основе этой учетной записи либо через разрешения NTFS, либо через код посредством определение контекста безопасности пользователя, зарегистрированного в системе.

Установка SSL-сертификата на Microsoft IIS 7

Перед установкой SSL-сертификата от REG.RU перейдите к списку услуг и убедитесь, что услуга SSL-сертификата активна:

Процесс установки сертификата

Загрузите выданный вам сертификат. Затем введите имя сертификата. Имя не является частью сертификата, но оно необходимо администратору, чтобы легко распознать сертификат:

Нажмите ОК и сертификат будет установлен на сервер.

Из меню «Actions» в правой части страницы нажмите на Bindings. Откроется окно «Site Bindings»:

В окне «Site Bindings» нажмите Add…, откроется окно «Add Site Binding»:

В меню «Type» выберите https. В меню «IP address» должен быть IP-адрес сайта или «All Unassigned». Порт, через который траффик будет зашифрован с помощью SSL по умолчанию 443. В поле «SSL Certificate» надо указать точное имя сертификата, который вы установили (шаг 7):

Ваш сертификат установлен и сайт будет работать через защищенное соединение.

Установка TLS сертификата от Let’s Encrypt на веб сервер IIS

Установка TLS сертификата от Let’s Encrypt на веб сервер IIS.

В связи с недавними атаками шифровальщиков WannaCry, Petya и им подобных, многие компании, наконец, всерьез задумались об информационной безопасности.

А что? надо же когда-то начинать ).

И хоть сегодняшняя статья и не имеет прямого отношения к защите от выше представленных «шифровальщиков».

Но кто знает, где завтра вскроется очередная «дыра»?

Сегодня решил написать подробную статью о том, как бесплатно получить TLS сертификат безопасности от центра сертификации Let’s Encrypt, и установить его на веб сервере IIS.

Делать все это, мы будем на Windows Server 2020 Standard.

Let’s Encrypt установка на windows веб сервер IIS

О SSl сертификатах слышали многие, а вот о TLS стоит сказать два слова:

Протокол TLS (transport layer security) основан на протоколе SSL.


Вот здесь можно почитать подробно >>>

Сертификат способен надежно защитить, например 1С Предприятие от несанкционированного доступа! (Кто работает в 1С через ВЕБ).

Да, собственно это позволит защитить и все Ваши сервисы, сайты, которые раньше работали на обычном HTTP.

Сертификатам от организации Let’s Encrypt доверяют все браузеры, так как используется надежное шифрование SHA-256+RSA, к тому же сегодня многие известные компании используют сертификаты от Let’s Encrypt, (Facebook, Cisco, Chrome) посему можно сделать вывод, что этот центр сертификации не «сдуется» как это было с WoSign и StartCom.

Стоит отметить также, что еще в 2020-том, было выдано больше миллиона сертификатов.

Организация сегодня активно развивается.

Из минусов:

Сертификат выдается лишь на 90 дней, но его всегда можно быстро обновить, по факту использования данного сертификата, могу сказать, что с этим проблем нет никаких.

О сайтах:

С недавних пор Блог, а также и наш Интернет магазин, перешли на защищенный протокол https, используя сертификат TLS от Let’s Encrypt.

И причина перехода была не только в безопасности, но и угрозы от большинства веб обозревателей.

К примеру, если у Вас на сайте есть «форма входа или регистрации» то без https, браузеры будут говорить пользователю что «вход не безопасный», «Данные не шифруются» или будут выдавать другие подобные предостережения, которые конечно скажутся на доверии, конверсии и так далее.

Да что говорить, если даже GOOGLE, собирается понижать в поисковой выдаче сайты без https.

А дословно, «Приоритет будет отдан тем сайтам, что используют https».

Переход на https:

Совершить переход на https при помощи сертификатов от Let’s Encrypt на Linux не составит труда, в интернете уже есть сотни подробных инструкций.

Еще проще это сделать, если Вы используете ISPmanager. (Там есть готовый бесплатный модуль).

А вот если нужно, это сделать на Windows когда веб сервере IIS, перевести на https (Конечно с использованием бесплатного сертификата от Let’s Encrypt, то проблемы могут быть).

Толковых инструкций (где бы не нужно было использовать Linux или Visual Studio) не нашел, поэтому решил написать статью сам.

Шаг №1. Доменное имя.

У Вас должно быть доменное имя.

Если у Вас нет доменного имени, то, как получить его бесплатно на 12 мес. писал вот здесь.

Первым делом нужно привязать его к нашему статическому IP адресу.

Здесь это показано, иначе нужно делать у Вас на хостинге.

Шаг № 2. Пробросить порт.

Открыть и пробросить порт 80 и 443 на сервер где у Вас работает веб сервер IIS.

В моем случаи, это локальный IP адрес 192.168.128.58

(После успешной реализации 80-тый порт снова закроем).

Шаг № 3. Проверим доступность сайта

Проверяем, доступен ли сайт, по нашему доменному имени извне, (Opera с VPN Вам в этом поможет).

Если все хорошо, тогда приступаем к следующему шагу.

Шаг № 4. Запись в Hosts.

Теперь нужно сделать привязку к локальному localhost на сервере, где работает веб сервер IIS.

Открываем «C:\Windows\System32\drivers\etc\ hosts»

Открывать для редактирования этот файлик нужно от имени администратора (Например, через обычный блокнот.)

И внесем такую запись

Сохраним наш hosts.

Шаг № 5. Привязка к домену на веб сервере IIS.

Нам также нужно сделать еще одну привязку на веб сервере IIS.

Это нужно для работы «клиента», которого мы скачаем чуть позже, чтоб он понимал, какими DNS именами мы располагаем и на какое имя делать сертификат.

Привязку делаем на 80 порт, а потом программа «клиент» сама создаст привязку на 443 порт.

Запускаем «IIS Manager».

Далее развернем компоненты и выбираем «Sites» -«Default Web Site», затем правый клик мышкой «Bindings…» или «Привязки».

Клик по кнопке «Edit» и в поле «Host name:» пропишем наш домен sklad1c.cf

Шаг № 6. «Клиент»

Теперь нам нужно скачать ту самую программу «клиент- letsencrypt-win-simple v1.9.3»

Она сделает всю работу по запросу, созданию и установке сертификата на наш веб сервер IIS.

После скачивания программы, распакуем архив и запустим ее.

Клик по «letsencrypt.exe». – запуск от имени администратора.

Программка имеет консольный интерфейс, но не волнуйтесь, нам для настройки потребуется лишь ввести свой email и несколько раз подтвердить действия.

Для начала введем email (любой).

Кликаем Enter и ждем следующего вопроса.

Кликаем по клавише «Y».

И теперь наш «Клиент» должен найти DNS записи, наш домен на веб сервере IIS — sklad1c.cf

Ставим единицу (цифра соответствует строке домена, у меня лишь один — sklad1c.cf).

Кликаем по клавише «Enter».

После чего набираемся терпения и ждем несколько минут 3 -5 -10 на получение и установку сертификата.

Как видно из скрина выше, все прошло успешно и мы получили сертификат!

(Было даже несколько «матюков» так как раньше я использовал самозаверяющийся сертификат).

Но это никак не повлияло на результат, сертификат от Let’s Encrypt успешно установлен!

Кликаем по клавише «N», и на этом работа закончена.

Проверяем

И сам сертификат

«Контрольный» через Opera VPN

Финиш — проверка сертификата

Как видите все получилось, сертификат работает.

Уже в следующей статье покажу как 1С Предприятие будет работать на этом сертификате.

Как создать самоподписанный сертификат на IIS 7

SSL является важной частью обеспечения безопасности вашего IIS 7.0 сайта, и ее гораздо легче обеспечить, чем в предыдущих версиях IIS. SSL сертификаты позволяют шифрованить весь трафик, которым обмениваются с вашего IIS сайта , предотвращая других от просмотра конфиденциальной информации. Он использует криптографию с открытым ключом для установления защищенного соединения. Это означает, что все зашифрованные с помощью открытого ключа (сертификат SSL) данные могут быть расшифрованы только при помощи закрытого ключа и наоборот.

Когда следует использовать на IIS самоподписанный сертификат

Никогда не используйте самоподписанный сертификат для сайтов электронной коммерции, или любых других, которые передают ценные личные данные, такие как номера кредитных карт, номера социального страхования и т.д.

Сертификат SSL необходим не только для распространения открытых ключей: если он будет подписан доверенной третьей стороны, он проверяет подлинность сервера, так что клиенты знают, что они не отдают информацию (зашифрованную или нет), не тому человеку. Так что же такое самоподписанный сертификат? Это сертификат, который подписан самостоятельно, а не доверенной третьей стороной. Разве это не плохо? В большинстве случаев, да. Вы почти никогда не захотите использовать самоподписанный сертификат на публичном IIS-сервере, который требует соединения анонимных посетителей с вашим сайтом, потому что они могут легко стать жертвой атаки «человек в середине». Однако, самоподписанные сертификаты имеют свое место:

  • Самоподписанные сертификаты могут быть использованы на сервере разработки IIS. Нету необходимости тратить дополнительные деньги на покупку доверенного сертификата, когда вы только разрабатываете и тестируете приложения.
  • Самоподписанные сертификаты могут быть использованы в интрасети. Когда клиенты должны только пройти через локальную интрасеть, чтобы добраться до сервера, практически нету шансов на атаку «человек в середине».
  • Самоподписанные сертификаты могут быть использованы на личных сайтах с малым количеством посетителей. Если у вас есть небольшой персональный сайт, через который проходит нечувствительная информация, существует очень мало стимулов для кого-то атаковать соединение.

Просто имейте в виду, что посетители будут видеть предупреждение в своих браузерах (как на картинке ниже) при подключении к сайту на Apache, который использует самоподписанный сертификат, пока он не будет постоянно храниться в хранилище сертификатов. Вы никогда не должны использовать самоподписанный сертификат для подписания сайта электронной коммерции, или любой сайт, который передает ценные личные данные, такие как данные кредитных карт, номера социального страхования и т.д.

Создайте ваш самоподписанный сертификат

1. Нажмите на меню «Пуск», перейдите к Administrative Tools и нажмите на Internet Information Services (IIS) Manager.

2. Нажмите на имя сервера в колонке подключений слева. Дважды щелкните на сертификатах сервера.

3. В столбце Действия справа, нажмите на ссылку Создать самоподписанный сертификат…

4. Введите подходящее имя и нажмите ОК.

5. Теперь у вас есть самоподписанный сертификат сроком на 1 год. Далее требуется привязать его к вашему IIS серверу.

Привязка самоподписанного сертификата

1. В колонке подключений слева, раскройте папку сайтов и нажмите на сайт, с которым вы хотите связать сертификат. Нажмите на связывание в правой колонке.

2. Нажмите на кнопку Добавить.

3. Измените тип на https и далее выберите сертификат, который вы только что установили, после – нажмите ОК.

4. Теперь вы увидете связку с портом 443 в списке. Нажмите Закрыть.

5. Теперь давайте проверим самоподписанный сертификат IIS перейдя на сайт с HTTPS в нашем браузере (например, HTTPS: / / site1.mydomain.com). Когда вы это делаете, вы должны увидеть следующее предупреждение о том, что «Сертификат безопасности этого сайта был издан для отличного от данного адреса сайта» (ошибка несовпадение имени).

Это отображается потому что IIS всегда использует имя сервера (в данном случае WIN-PABODPHV6W3) как общее имя, когда он создает самоподписанный сертификат. Как правило, оно не соответствует имени хоста, который вы используете для входа на сайт в вашем браузере (site1.mydomain.com). Для многих ситуаций, когда IIS использует самоподписанные сертификаты, это не проблема. Просто нажмайте кнопку «Продолжить открытие этого веб-сайта» каждый раз. Однако, если вы хотите полностью избавиться от сообщения об ошибке, вы должны следовать следующим двум шагам ниже.

Сформируйте самоподписанный сертификат с корректным именем

Этот шаг необходим только если вы хотите избавиться от предупреждающего сообщения, что название самоподписанного сертификата не совпадает с именем хоста сайта. Для того, чтобы решить эту проблему, мы должны создать самоподписанный сертификат, используя тот же метод, который используется для создания самоподписанного сертификата в IIS 6.0 (с SelfSSL, а не через IIS).

1. Скачайте Internet Information Services (IIS) 6.0 Resource Kit Tools и установите SelfSSL 1,0 (если вы делаете выборочную установку, вы можете снять все, за исключением SelfSSL). После установки, зайдите в меню Пуск, перейдите к IIS ресурсам, далее к SelfSSL, и запустить SelfSSL.

2. Вставьте в следующую команду замену site1.mydomain.com на имя хоста вашего сайта IIS. Если вы получаете erorr «Ошибка при открытии метабазы: 0×80040154″, просто игнорируйте ее. Мы будем вручную привязывать сертификат к сайту.
SelfSSL / N: CN = site1.mydomain.com / V: 1000

3. После завершения работы команды, вы будете иметь самоподписанный сертификат IIS с правильным именем, указанным в разделе Сертификаты сервера IIS. Теперь следуйте инструкциям выше, чтобы связать сертификат с вашим IIS сайтом.

Установка SSL сертификата: Microsoft IIS 7.x

Установка на веб-сервере

1. Через кнопку Пуск и Панель управления откройте Internet Information Services Manager (IISM) и выберите имя соответствующего сервера.

2. Выберите раздел “Security” , далее нажмите на иконку “Server Certificates” .

3. Перейдите в раздел “Actions” и выберите пункт “Complete Certificate Request” .

4. Перейдите к оформлению запроса по установке сертификата: введите необходимую информацию – укажите путь к полученному сертификату и введите его имя. Имя сертификата не является его частью, но его использует администратор сервера, чтобы быстро различать сертификаты. Нажмите “ОК” .

Примечание: Microsoft IIS 7.x может выдать сообщение об ошибке следующего содержания: «Cannot find the certificate request associated with this certificate file. A certificate request must be completed on the computer where it was created» – не удается найти соответствующий сертификат. Также можно получить сообщение, начинающееся «ASN1 bad tag value met». Если Вы производите установку сертификата на том же сервере, где генерировали CSR, скорее всего сертификат уже установлен. Просто отмените диалог и нажмите F5, чтобы обновить список сертификатов сервера. Если новый сертификат появился в списке, можно перейти к следующему шагу. Если он отсутствует в списке, придется повторно выпустить сертификат, используя новый запрос CSR.

Установка на веб-сайте

1. Вернитесь в главное диалоговое окно Internet Information Services Manager (IISM) и перейдите в раздел «Connections» и выберите имя сервера, на который только что установили сертификат.

2. В меню Web Sites выберите имя сайта, который хотите защитить с помощью SSL сертификата. Справа в меню «Actions» (подпункт “Edit Site” ) выберите пункт “Bindings” .

3. Теперь добавьте порт 443.

Для этого нужно нажать кнопку “Add” , в результате чего откроется диалоговое окно “Add Site Binding” .

В меню «Type» выберите тип протокола https . В строке IP адрес следует выбрать IP address of the site или All Unassigned . Для соединений, защищенных SSL шифрованием, всегда используется порт 443 . В поле “SSL Certificate” укажите установленный сертификат.

Сохраните изменения, нажав кнопку “OK” .

Примечание: Если в этом окне уже присутствует портал https, просто выберите его и нажмите “Edit”. После этого в окне “SSL certificate” выберите ранее сгенерированное имя сертификата. Сохраните изменения кнопкой “OK”.

Нажмите “OK” в окне “Web Site Bindings” чтобы завершить установку.

Важно! Чтобы завершить установку сертификата, необходимо перезагрузить IIS/веб-сайт.

Как получить клиентские сертификаты, работающие в CF10 для HTTPS. IIS 7.5

Я пытаюсь получить подтверждение сертификата клиента, работающего с HTTP-запросами ColdFusion10. В настоящее время я получаю только 403,7. Я считаю, что ColdFusion не получает мой сертификат клиента. Ниже приведены шаги, которые я сейчас предпринял для установки и настройки.

  • Создал самозаверяющий сертификат SSL и установил его на свой веб-сайт по умолчанию на IIS 7.5.
  • Установлен сертификат SSL в хранилище CF.
    • Протестировал HTTPS-запрос, все отлично работает.
  • Следовал этому руководству для CA и Client Certs. https://ondrej.wordpress.com/2010/01/24/iis-7-and-client-certificates/
  • Установил сертификат CA на сервер и клиент (через MMC). Установлен сертификат клиента (.pfx) на клиенте.
    • Протестировано в локальном браузере, до этого момента все работает как надо.
  • Создан другой клиентский сертификат для CF10 (.cer, .pvk, .pfx).
  • Добавлен сертификат CA в CF store.
    • Протестировано, HTTPS отклонен с 403,7.
  • Добавлены сертификат CA, клиент .pfx и .cer через MMC под CF10.
    • Протестировано, снова отклонено с 403,7 до сих пор.

Я видел, что раньше были проблемы с CFHTTP и клиентскими сертификатами, но я пока не нашел решения. Если кто-то может помочь мне с этим, было бы здорово.

РЕДАКТИРОВАТЬ: После выполнения того, что предложил Мигель-F, я просмотрел файлы журнала и обнаружил, что мой ЦС был импортирован в хранилище доверия ColdFusion, но моего сертификата клиента там не было. Я предполагаю, что это причина для 403.7.

Однако я не могу добавить свой сертификат клиента (.pfx) в хранилище доверенных сертификатов, используя certman или keytool через cmd. Я создал .pfx, объединив мои .cer и .pvk вместе, так что у меня есть и то и другое.

Как я могу добавить мой .pfx в хранилище доверенных сертификатов, чтобы Coldfusion поднял его и проверил мой https?

РЕДАКТИРОВАТЬ # 2: После этого, чтобы добавить мой .pfx в хранилище ключей, теперь я могу видеть мой клиентский сертификат вместе с моим CA, добавленным как «доверенный сертификат» во время запроса https.

Тем не менее, я все еще получаю 403,7 — Запрещенная ошибка.

Редактирование # 3: рукопожатие в отладочной информации ssl после добавления моего .pfx (см. Редактирование # 2):

Редактирование # 4 (дополнительная информация об отладке):

Последний раздел выше, где он возвращает 403 в отладочной информации, выглядит как содержимое HTML для страницы ошибок, возвращаемой сервером. Чуть выше, однако, это:

Редактирование # 5: я вижу, что мой сертификат клиента добавляется как доверенный сертификат во время начала запроса . Он просто не использует его.

Редактирование # 6: После добавления setClientCert ( путь к моему .pfx ) и setClientCertPassword ( пароль сертификата клиента ) в мой запрос https я вижу эту ошибку:

Илон Маск рекомендует:  q в HTML
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL