locate
61
09.10.2020

Как установить SSL сертификат Let's Encrypt на Windows Server (IIS)

Что за сертификат Let’s Encrypt?

Let’s Encrypt - бесплатный, автоматизированный и открытый Центр Сертификации, созданный на благо всего общества организацией Internet Security Research Group (ISRG). Мы помогаем людям выпускать SSL/TLS сертификаты для их сайтов с доступом по HTTPS, бесплатно, максимально облегчая процесс выдачи. Потому что хотим сделать интернет безопасным, и уважающим конфиденциальность его пользователей. letsencrypt.org

Куда и зачем мне нужен был SSL сертификат

Начнём с того, что SSL (Secure Sockets Layer) сертификат защищает данные пользователей, которые передаются по сети. Для интеграции с одним из известных маркетплейсов мне нужно было использовать web-сервис 1С и на тестовом Windows Server, на котором был развёрнут тестовый сервер 1С, был поднят IIS (internet Information Services). Веб сервер Windows.

В требованиях обмена маркетплейса было указано что обмен должен идти через защищенный HTTPS протокол. И не через IP адрес, а через домен. Ниже расскажу последовательность моих действий:

Установку Windows Server и сервера 1С я тут рассматривать не буду, так как. Во-первых Windows Server установка мало чем отличается от установки обычной десктопной винды, а по 1С можно почитать эту статью. Во-вторых я хочу рассказать именно про то как установить SSL сертификат от Let's Encrypt на Windows Server IIS. Начнём!

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

Скачиваем программу LetsEncrypt-Win-Simple

Для того чтобы выпустить сертификат на Windows Server IIS на необходима программа LetsEncrypt-Win-Simple. Качаем её на официальном сайте www.win-acme.com

Сайт загрузки win-acme
Скачиваем программу LetsEncrypt-Win-Simple

Скачиваем и распаковываем архив в директорию на жёстком диске. Для выпуска сертификата нам нужно будет запустить из каталога файл wacs.exe. Но это чуть позже.

Если мы сейчас попытаемся выпустить сертификат, то получим предупреждение

No sites with host bindings have been configured in IIS. Add one in the IIS Manager or choose the plugin 'Manual input' instead.

Добавим веб-сайт в Диспетчере служб IIS

Запускаем Диспетчере служб IIS через панель управления - администрирование. Или через WIN + R

InetMgr.exe

Добавляем записи в Диспетчере DNS

Открываем Диспетчер DNS через команду выполнить WIN + R (или любым удобным для вас способом 😉 )

dnsmgmt.msc

Выбираем сервер, правой кнопкой по каталогу сайтов и нажимаем Добавить веб-сайт... Указываем каталог для нового сайта. Дальше нам нужно создать псевдоним CNAME в зоне прямого просмотра (forward lookup zones).

Диспетчер DNS. Создание псевдонима CNAME
Диспетчер DNS

Так как домен у меня находится у хостинг провайдера, то я на всякий случай указал в Диспетчере DNS его NS сервера. В свою очередь у хостинг провайдера прописываем A запись с нашим выделенным IP адресом. Позже мы настроим правило для того чтобы входящее соединение перебрасывало на нужный сервер.

Выпуск SSL сертификата Let's Encrypt

И так. У нас есть 1С сервер с расширением веб-сервера, добавили DNS и CNAME записи, указали A запись. Теперь запускаем WACS.EXE и вводим букву N для инициирования выпуска сертификата. Далее выбираем на какой домен будем выпускать сертификат, даём пару соглашений (y) и вводим email адрес, куда нам будут приходить уведомления в случае каких-либо проблем (Enter email for notifications about problems and abuse).

Wacs.exe
Вводим email адрес для получения уведомлений в случае возникновения проблем с сертификатом
Wacs.exe - завершение установки SSL сертификата для IIS
Завершение выпуска SSL сертификата Let's Encrypt для IIS

В принципе всё готово. По части сертификата. Программа автоматически добавляет привязку 443 SSL порта к сайту в Диспетчере служб IIS и в Планировщике заданий таск на автоматический перевыпуск сертификата, но можно в этом убедиться самостоятельно

Диспетчер служб IIS просмотр установленной привязки к 443 порту нашего SSL сертификата Let s Encrypt
Проверяем привязку в Диспетчере служб IIS
Диспетчер служб IIS просмотр установленной привязки к 443 порту нашего SSL сертификата Let s Encrypt
Проверяем задание в Планировщике заданий 😓 масло масляное

Настройка шлюза (роутера)

В моём случае это был Kerio Control. Я добавил правило для всех входящих по HTTPS (443 порт) и по HTTP (80 порт) переадресацию на нужный сервер IIS с SSL сертификатом

Настройка перенаправления HTTP и HTTPS протокола на IIS сервер с сертификатом
Правила перенаправления HTTP и HTTPS протокола на IIS сервер с сертификатом

И теперь, когда мы перейдём по ссылке https://domain.site то мы увидим заветный замочек в левом углу адресной строки 😎 Всё готово!