Возникла не первый раз небольшая задача и опять пришлось вспоминать, что и как настраивал до этого. Я расскажу, как настроить HTTPS на IIS, когда у вас обычные сертификаты в формате CRT. Просто взять и применить их в IIS не получится. Расскажу, что с этим делать.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Допустим, вы купили обычный сертификат. У вас есть 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}
Сохраняете правило и проверяете. Перенаправление с HTTP на HTTPS должно работать.
Заключение
Вот такая простая настройка в IIS. Хоть этот веб сервер и не распространён по различным причинам, но настраивать его очень просто, особенно если слабо разбираешься в веб технологиях. Я лично встречаю этот веб сервер только в контексте публикации баз 1С. Чаще всего сервер 1С установлен на Windows, и с этой же машины делают публикацию.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Если раскрыть ветку 1с (на вашем примере), дальше в настройках начальной страницы есть в секции IIS "перенаправление протокола HTTP" - выбираем постоянное (301), как в nginx :)
Однако редирект не будет работать с указанием каталога после имени сайта, например
http://Имя.ru/baza1c/ru_RU
Это точная информация или предположение? Я не проверял такой url. Как сделать правильно?
Точно не работает. Переводил уже работающих пользователей с http на https - пришлось всем ссылки менять.
Как сделать правильно не знаю, но подозреваю, что дело в правиле редиректа.
Так работает https://{HTTP_HOST}/{REQUEST_URI}
В Русской редакции настройки выглядят непривычно :)
Это да. Такой сервер достался. Я сам не ставлю никогда русские редакции. Как раз из-за того, что с настройками путаница и в логах потом много непонятного.