Возникла не первый раз небольшая задача и опять пришлось вспоминать, что и как настраивал до этого. Я расскажу, как настроить HTTPS на IIS, когда у вас обычные сертификаты в формате CRT. Просто взять и применить их в IIS не получится. Расскажу, что с этим делать.
Хочешь научиться автоматически разворачивать и поддерживать высоконагруженные проекты? Тогда рекомендую познакомиться с онлайн курсом » Infrastructure as a code.» в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .
Допустим, вы купили обычный сертификат. У вас есть private key, плюс поставщик сертификатов прислал crt файл и возможно ca-bundle. Последний скорее всего не пригодится.
Конвертация CRT в PFX
Итак, нам нужно сконвертировать существующий сертификат crt в pfx формат, который одновременно содержит сертификат и приватный ключ к нему. Проще всего это сделать с помощью утилиты openssl. В любом Linux дистрибутиве она есть по умолчанию. Вам достаточно передать туда свой сертификат и приватный ключ и выполнить конвертацию:
# openssl pkcs12 -export -out domain.ru.pfx -inkey domain.ru.key -in domain.ru.crt
На выходе получите domain.ru.pfx, который нужно передать на IIS сервер. Если не хотите связываться с командной строкой, то можно воспользоваться утилитой DigiCert Certificate Utility для Windows. Скачать её можно с сайта Digicert. Создайте директорию и положите туда файлы crt и key, а также саму утилиту и запустите её из этой директории. Она сама увидит сертификат и предложит его установить.
После установки выберите этот сертификат и нажмите Export Certificate. Далее выберите формат pfx file, включающий в себя приватный ключ.
Настройка HTTPS в IIS
Дальше всё очень просто. Чтобы настроить HTTPS, надо открыть консоль управления IIS сервера и импортировать сертификат pfx, который только что сделали.
После этого перемещайтесь в нужный сайт, выбирайте в нём настройку Изменить привязки.
Добавляйте новую и выбирайте для неё импортированный сертификат.
На этом настройка HTTPS в IIS закончена. Уже сейчас можно пойти и проверить работу по защищённому протоколу. Единственное, чего недостаёт — автоматического редиректа с HTTP на HTTPS. Если вам он нужен, то читайте дальше, как его настроить.
Редирект с HTTPS на HTTP в IIS
Для того, чтобы настроить редирект с HTTP на HTTPS, необходимо дополнительно установить модуль для IIS — URL Rewrite. Загрузить его можно с официального сайта iis — https://www.iis.net/downloads/microsoft/url-rewrite. После загрузки установите модуль, перезапустите iis и откройте заново оснастку управления. В настройках сайта появится новый раздел — Переопределение url адресов.
Откройте эти настройки и добавьте новое правило:
- Имя — любое
- Запрошенный url-адрес: соответствует шаблону
- Использование: регулярные выражения
- Шаблон: (. *)
- Условия. Ввод условия: {HTTPS}, Шаблон: ^OFF$
- Тип действия: Перенаправление
- URL-адрес перенаправления: https://{HTTP_HOST}/{R:1}
Сохраняете правило и проверяете. Перенаправление с HTTPS на HTTP должно работать.
Заключение
Вот такая простая настройка в IIS. Хоть этот веб сервер и не распространён по различным причинам, но настраивать его очень просто, особенно если слабо разбираешься в веб технологиях. Я лично встречаю этот веб сервер только в контексте публикации баз 1С. Чаще всего сервер 1С установлен на Windows, и с этой же машины делают публикацию.
Онлайн курс Infrastructure as a code
Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.
Что даст вам этот курс:
- Познакомитесь с Terraform.
- Изучите систему управления конфигурацией Ansible.
- Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
- Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
- В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins
Смотрите подробнее программу по .
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.