Установка SSL в IIS: пошаговое руководство

Быстрая навигация
- Что такое SSL-сертификат и зачем он нужен
- Генерация CSR в IIS
- Заказ сертификата и отправка CSR в удостоверяющий центр
- Установка сертификата в IIS
- Привязка сертификата к сайту (binding)
- Проверка сертификата и отладка
- Дополнительно: чек-листы, PowerShell сниппеты, откат, часто встречаемые ошибки
Что такое SSL-сертификат и зачем он нужен
Определение: SSL/TLS‑сертификат — это электронный сертификат, который подтверждает подлинность сервера и позволяет установить зашифрованное HTTPS‑соединение между браузером клиента и веб‑сервером.
Зачем нужен: сертификат шифрует трафик (например, логины, номера карт) и подтверждает владельца домена, что защищает пользователей от атак «человек посередине» и повышает доверие к сайту.
Краткая примечание: HTTPS не делает сайт полностью безопасным — это компонент защиты канала передачи данных. Приватность и соответствие требованиям (например, GDPR) требуют дополнительной работы на уровне данных и приложений.
Генерация запроса на подпись сертификата (CSR) в IIS
- Откройте IIS Manager на сервере Windows.
- В дереве слева выберите уровень сервера и дважды кликните Server Certificates.

- Справа выберите Create Certificate Request.
- Заполните поля организации. Если у вас нет юридического наименования, укажите ваше имя как владельца.
Важно: в поле Common Name указывайте полное доменное имя в том виде, в котором пользователи будут заходить на сайт. Если вы хотите одновременно защищать и example.com, и www.example.com, используйте SAN‑сертификат или включите www в сертификат. Если в Common Name указать только example.com, сертификат по умолчанию не покроет www.example.com, и наоборот.
- Выберите длину ключа (Bit Length) — обычно 2048 бит (минимум для современной совместимости). Нажмите Next и сохраните файл CSR на рабочем столе, например yourdomain.csr.txt.
Ниже приведён пример CSR фрагмента, который вы будете копировать в форму регистратора:
-----BEGIN CERTIFICATE REQUEST----- ``` MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV BAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln aUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo wp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c 1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI WDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ wIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR BPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ KoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D hJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY Q4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/ ZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn 29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2 97Ob1alpHPoZ7mWiEuJwjBPii6a9M9G30nUo39lBi1w= -----END CERTIFICATE REQUEST-----
Скопируйте содержимое CSR в форму регистратора, как требует выбранный CA.
Заказ SSL и отправка CSR удостоверяющему центру
- Выберите CA: коммерческие варианты — DigiCert, GlobalSign, Namecheap, Sectigo/Comodo; бесплатный вариант — Let’s Encrypt (подходит для автоматизированных сценариев и частых обновлений).
- В форме заказа вставьте CSR. Если CA требует подтверждения владения доменом, выполните один из методов: email‑верификация на администратора домена, запись DNS TXT с кодом или размещение файла на сайте по специфичному URL.
- После проверки CA выдаст вам сертификат в формате .cer, .crt или .pem. Скачайте файл и сохраните на сервере.
Примечание о SAN и wildcard: если вы хотите защищать несколько поддоменов, спросите у CA SAN (Subject Alternative Name) или wildcard (.example.com). Wildcard не покрывает домен второго уровня без подстановки (например, .example.com не покрывает example.com без отдельной записи).
Установка сертификата на сервер в IIS
- В IIS Manager вернитесь в Server Certificates и выберите Complete Certificate Request.
- Укажите путь к файлу сертификата, полученному от CA, и задайте Friendly Name (удобное имя, например yourdomain.com или yourdomain.com-01).
- Оставьте хранилище Personal (Личное) по умолчанию.

После успешной установки сертификат появится в списке Server Certificates и в хранилище сертификатов Windows.
Привязка сертификата к веб‑сайту (binding)
- В IIS Manager выберите нужный сайт в списке Sites.
- Справа нажмите Bindings….
- Добавьте binding с Type: https, Port: 443, IP address: All Unassigned или конкретный IP, и в поле SSL certificate выберите установленный сертификат по Friendly Name.
- Повторите для версии с www, если используете отдельный сертификат или отдельный binding.

После привязки откройте в браузере https://yourdomain.com и проверьте отсутствие предупреждений.
Проверка сертификата и отладка
- Простой тест: откройте https://yourdomain.com и посмотрите детали сертификата в браузере.
- Онлайн‑проверка: используйте SSL Checker, например https://www.sslshopper.com/ssl-checker.html — введите адрес и посмотрите цепочку сертификатов, сроки действия, версию TLS, поддерживаемые шифры.

- Частая проблема — смешанный контент: часть ресурсов (изображения, скрипты, стили) загружаются по http:// вместо https://. Проверяйте консоль браузера и исправляйте URL в шаблонах/конфигурации.
- Чтобы принудительно перенаправлять трафик с HTTP на HTTPS, добавьте правило перенаправления в IIS URL Rewrite или настройте правило на уровне приложения/Reverse Proxy.
Полезные команды PowerShell для обработки сертификатов и биндинга в IIS
Примеры ниже пригодятся для автоматизации. Меняйте пути, пароли, имена сайтов и шаблоны предмета (subject) под свой случай.
# Импорт PFX в хранилище LocalMachine\My
$password = ConvertTo-SecureString -String 'P@ssw0rd' -AsPlainText -Force
Import-PfxCertificate -FilePath 'C:\certs\yourdomain.pfx' -CertStoreLocation Cert:\LocalMachine\My -Password $password
# Найти отпечаток (thumbprint) сертификата по Subject
$thumb = (Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -like '*yourdomain.com*' } | Select-Object -First 1).Thumbprint
# Подключить модуль и создать binding для сайта в IIS
Import-Module WebAdministration
# Создаём привязку https на 443 (если нужная привязка уже есть, используйте Set-Item вместо New-Item)
New-WebBinding -Name 'Default Web Site' -Protocol https -Port 443 -IPAddress '*' -HostHeader 'yourdomain.com'
Push-Location IIS:\SslBindings
New-Item '0.0.0.0!443!yourdomain.com' -Thumbprint $thumb -SSLFlags 1
Pop-LocationПримечание: использование PFX предполагает наличие приватного ключа; IIS при использовании CSR, сгенерированного на этом сервере, уже хранит приватный ключ в магазине, и вам может потребоваться импортировать только .cer. Если вы переносите сертификат на другой сервер, экспортируйте его в PFX с приватным ключом.
Чек-листы по ролям
Администратор сервера
- Сгенерировать CSR и сохранить копию.
- Убедиться в длине ключа (рекомендуется 2048 бит).
- Установить сертификат через Complete Certificate Request.
- Привязать сертификат к сайту и протестировать.
- Резервная копия приватного ключа (если переносите — экспорт в PFX).
Разработчик/DevOps
- Проверить, что все ресурсы загружаются по HTTPS.
- Настроить редиректы http → https.
- Автоматизировать обновление/проверку сроков действия сертификата.
Специалист по безопасности
- Проверить цепочку доверия и актуальность алгоритмов (RSA 2048+, SHA-2).
- Проверить поддержку современных версий TLS (TLS 1.2 и 1.3 при возможности).
- Настроить HSTS, если сайт полностью на HTTPS.
Стандарт работы (SOP) для установки SSL в IIS
- Подготовка: проверить, что у вас есть доступ администратора к серверу и к панели управления доменом (для DNS‑валидации).
- CSR: сгенерировать CSR в IIS, сохранить файл и заметить, где находится приватный ключ.
- Заказ: отправить CSR в CA, пройти валидацию владения доменом.
- Получение сертификата: скачать .cer/.crt и сохранить в защищённом каталоге.
- Установка: Complete Certificate Request в IIS. Проверить, что сертификат появился в Server Certificates.
- Биндинг: добавить https binding для всех нужных хостов и портов.
- Тестирование: браузер, SSL Checker, проверки на смешанный контент.
- Мониторинг: настроить оповещения о сроке окончания действия сертификата (за 30/14/7 дней).
- Документирование: записать Friendly Name, thumbprint, дату установки.
Критерии приёмки
- Сайт открывается по HTTPS без предупреждений в браузере.
- SSL Checker показывает корректную цепочку и срок действия.
- Нет смешанного контента на основных страницах.
- Перенаправление с HTTP на HTTPS работает корректно.
План отката и экстренного восстановления
Если после установки сертификата сайт перестал отвечать по HTTPS:
- Откат binding: в IIS временно удалите https binding для проблемного сайта.
- Вернуть старый сертификат: если у вас был рабочий сертификат, привяжите его обратно.
- Проверить журнал событий Windows и лог IIS на ошибки TLS/SSL.
- Если приватный ключ повреждён, восстановите сертификат из PFX-резервной копии.
- Если ничего не помогает — временно поставить самоподписанный сертификат для восстановления доступа и продолжить отладку.
Частые ошибки и решения
- Проблема: «сертификат не доверен» — решение: убедитесь, что на сервере установлена полная цепочка (intermediate CA). Установите промежуточные сертификаты в Personal или Intermediate Certification Authorities в зависимости от инструкций CA.
- Проблема: «много предупреждений для поддоменов» — решение: используйте SAN или wildcard, или покупайте отдельные сертификаты.
- Проблема: «смешанный контент» — решение: изменить все жестко прописанные http:// URL на относительные или https://.
- Проблема: «старые версии TLS» — решение: в системе Windows отключите устаревшие версии TLS/SSL через реестр или групповые политики и включите TLS 1.2/1.3 где поддерживается.
Дополнительные рекомендации по безопасности
- Используйте ключи не короче 2048 бит; для особо чувствительных сервисов рассматривайте 3072 или лучше ECDSA.
- Предпочитайте SHA‑2 подписанные сертификаты.
- Включите HSTS на уровне сайта, если готовы: это запрещает загрузку по HTTP в браузерах.
- Отключите старые шифры и протоколы (SSLv3, TLS 1.0, TLS 1.1).
- Настройте мониторинг срока действия сертификатов и автоматические уведомления о истечении.
Безопасность приватного ключа: храните экспортированные PFX-файлы в защищённом месте и с сильными паролями, ограничьте доступ к ним.
Примечания по приватности и соответствию (GDPR)
SSL защищает канал передачи и помогает предотвратить перехват персональных данных в пути. Однако наличие HTTPS не освобождает от требований GDPR: хранение, обработка и передача персональных данных должны соответствовать правилам, включая правовую основу, минимизацию данных и обеспечения прав субъектов данных.
Метод принятия решения при выборе типа сертификата
flowchart TD
A[Нужно защитить один домен?] -->|Да| B[Один домен: стандартный сертификат]
A -->|Нет| C[Нужно защитить несколько поддоменов?]
C -->|Да| D[Wildcard '*.example.com' или SAN]
C -->|Нет| E[Много разных доменов → SAN сертификат с перечислением всех доменов]
B --> F[Проверить: нужен ли EV или OV?]
F --> G[EV если требуется зелёная строка/подтверждённая компания]
F --> H[OV если нужна проверка организации]Короткое руководство по миграции на другой сервер
- Экспортируйте сертификат с приватным ключом в формате PFX с исходного сервера.
- Передайте PFX безопасно (SFTP/защищённо) и импортируйте на новый сервер через Import-PfxCertificate.
- Проверьте отпечаток и повторно сделайте привязки в IIS.
- Тестируйте сайт и удалите PFX после импорта из рабочего каталога.
FAQ
Q: Нужно ли отдельно защищать www и non‑www?
A: Либо укажите оба варианта в сертификате (SAN), либо используйте wildcard, либо сделайте отдельные сертификаты и биндинги. Без www в сертификате доступ к www.example.com вызовет предупреждение в браузере.
Q: Как часто нужно обновлять сертификат?
A: Срок действия сертификата зависит от CA и типа cert; многие сертификаты действуют год или два, Let’s Encrypt — 90 дней. Настройте автоматические напоминания.
Q: Поможет ли SSL защитить сайт от XSS или уязвимостей в приложении?
A: Нет. SSL защищает канал передачи. XSS и другие уязвимости надо исправлять в коде и настройках приложения.
Заключение
Установка SSL в IIS — рутинная, но критически важная задача для безопасности сайта. Процесс включает генерацию CSR, заказ у CA, установку и привязку сертификата, а также тестирование и мониторинг. Следуйте чек‑листам, автоматизируйте проверку сроков действия и защищайте приватные ключи.
Ключевые шаги:
- Сгенерировать CSR в IIS;
- Отправить CSR в CA и пройти валидацию;
- Установить сертификат и привязать к сайту;
- Протестировать HTTPS и исправить смешанный контент;
- Настроить мониторинг и резервное копирование PFX при необходимости.
В приложении к этой статье вы найдёте готовые PowerShell‑команды и SOP для быстрой установки и отката.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента