1С + IIS + SSL: Перевод опубликованной базы на защищенное соединение https с сертификатом от Let's encrypt

19.10.19

Администрирование - Администрирование веб-серверов

Всем Доброго времени! Предлагаю Вам небольшую базовую инструкцию, где я опишу, как быстро перевести опубликованную в веб базу 1С на защищенное https соединение, используя стандартный IIS сервер и бесплатный сертификат SSL от Let's encrypt.

Скачать исходный код

Наименование Файл Версия Размер
letsencrypt-win-simple.V1.9.3.zip
.zip 4,00Mb
54
.zip 4,00Mb 54 Скачать

У меня возникла необходимость перевести опубликованную базу в веб 1с на защищенной соединение https.

Для данного примера я работал с Платформой 1С 8.3.13.1865, конфигурацией Розница 2.2.12. Стандартный IIS сервер 8.5.

Решение этой задачи я разобью на 2 этапа: подготовительный и основной.

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

 

Итак, подготовительный этап:

 

1.1. Для начала мы должны привязать доменное имя к вашему ip адресу:

Без доменного имени, привязать SSL сертификат НЕЛЬЗЯ, поэтому, заходим на регистратора доменных имен и покупаем любое свободное имя.

Далее, заходим в "Управление доменной зоной" в личном кабинете регистратора доменного имени и делаем 2 записи типа А (для www и без - см.рис), куда прописываем ваш внешний ip (опубликованная база должна быть доступна по этому ip заранее).

 

 

Тут все просто, проверяем доступность базы по подключенному имени, через некоторое время. Через немного времени, убедимся, что все хорошо.

 

 

1.2. Пробросим порт 443 на роутере:

Следующим шагом, заходим на ваш роутер и пробрасываем порт 443 для https. Это должно быть выглядеть примерно вот так:

 

 

на рисунке у меня проброшены следующие порты:

80 - незащищенное интернет соединение http

3340 - соединение к удаленному рабочему столу (к описанию отношения не имеет, но оставлю для пояснения)

443 - защищенное интернет соединение https

 

1.3. Настройка IIS

Сделаем привязку имени узла к основному сайту в IIS. Для этого, заходим в Диспетчер IIS (см. рис):

Выбираем в раскрывающемся списке Default Web Site и прописываем для него Привязки. В имя узла пропишем наше доменное имя.

 

 

На этом подготовительный этап закончен, переходим к основному:

 

2.1. Создание и запись сертификата Let's encrypt.

Я установил бесплатный сертификат от Let's encrypt https://letsencrypt.org/ сроком на 3 месяца со времени его создания.

Для этого, я воспользовался свободной программкой letsencrypt-win-simple.V1.9.3.zip (приложена к этой инструкции).

Запускаю программу от имени администратора и делаю следующие действия:

 

Вводим электронную почту.

 

На данный вопрос вводим "y".

 

Далее, программа находит DNS записи на сервере IIS. Выбираем нашу запись -  нажимаем "1".

На следующий (последний) вопрос вводим "N"

Сертификат создан и записан в IIS.

 

2.2. Проверяем установленный сертификат

Для этого открываем Диспетчер служб IIS и в разделе "Сертификаты сервера" смотрим наш сертификат.

 

 

Заходим на наше доменное имя по адресу https:// и убедимся, что оно доступно.

 

Теперь, наша база опубликована по доменному имени и работает по защищенному соединению.

Всем спасибо за прочтение, буду рад, если данный материал Вам поможет!

 

Ранее опубликованные материалы

Так же, прошу посмотреть мои предыдущие статьи:

Работа с механизмом отладки 1С. Базовые настройки

Методика независимой системы "Подписки на события"

Дополнительные расходы на основе перемещения запасов в УНФ (пошаговая разработка расширения конфигурации)

 

https сертификат ssl iss публикация базы

См. также

Настройка работы 1C и Apache по протоколу https на РедОС (nginx)

Администрирование веб-серверов Системный администратор Бесплатно (free)

В материале описан порядок действий по настройке Apache для работы по защищенному протоколу HTTPS c 1С на операционной системе РедОС с выпуском сертификата SSL.

09.05.2024    1164    artemusII    1    

9

Публикация на Open Server Panel

Администрирование веб-серверов Системный администратор Программист Бесплатно (free)

Инструкция, как опубликовать веб-сервис с помощью OSPanel.

06.05.2024    794    lostcay    0    

5

Установка Apache на РедОС и публикация 1С по протоколу http

Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статья описывает алгоритм установки, настройки и "сопряжения" с 1С веб-сервера Apache на РедОС. Статья, может, будет полезна тем, кто ищет в сети работающие алгоритмы установки веб-сервера и публикации на нем информационных баз 1С в контуре операционной системы РедОС. Помимо этого в статье рассмотрены некоторые спорные моменты, для анализа которых не удалось найти достаточно информации в сети.

25.04.2024    1961    artemusII    8    

18

Путь самурая. Ставим локальный Сервер взаимодействия

Сервера Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    15081    VPanin56    46    

77

Публикатор 1С. Как публиковать базы с комфортом

Администрирование веб-серверов Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Сегодня я расскажу вам про публикатор 1С баз. Это приложение, которое позволит с комфортом и удобством управлять зоопарком ваших веб публикаций. Если у вас больше 5 публикаций, и вам надо с ними что-то делать с завидным постоянством. Если для того чтобы опубликовать тестовую базу, вам приходится идти в техподдержку Если вам просто надоело копаться в конфигах, раздумывая, а нигде ли вы не ошиблись в пробелах и запятых - то тогда вам будет интересна эта публикация.

20.03.2023    7359    85    Segate    5    

27

Midnight Commander, установленный с Entware, не выполняет команды и не запускает файлы

Администрирование веб-серверов Linux Системный администратор Программист Бесплатно (free)

Столкнулся с проблемой, установил на роутер Midnigt Commander с репозитория Entware, при попытке выполнения команды программа пишет ошибку "The shell is already running a command". Данная публикация описывает способ решения этой проблемы.

20.03.2023    3734    Eugen-S    2    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vsesam80 10.08.19 23:50 Сейчас в теме
Полезная публикация. Я так понял что все серты Let's encrypt будут приниматься Виндой как настоящие и не будут генерить ошибку как в случае с самоподписанными?
Вот еще бы как бы с Апачем это сделать и прикрутить сертификаты к сервису no-ip
2. Xershi 1496 11.08.19 01:04 Сейчас в теме
Я так понял если у нас белый статический ip, а домена нет, то ничего не выйдет?
Тоже самое если я допустил развернул веб-сервер у себя в локальной сети, доменного имени нет, есть только имя ПК, тоже пшик или есть варианты?
4. aximo 2040 11.08.19 06:13 Сейчас в теме
(2) вариант- купить доменное имя. Ssl сертификаты выдаются только на доменные имена..

если честно не заморачивался локальной сетью - мне нужно было установить именно защищенное соединение с вебсервисом
22. ridgid 12.08.19 15:42 Сейчас в теме
(2)не берите в голову есть бесплатный dns использующий ваш белый ip
Sslip.io
Сертификат 123-56-78-232.sslip.io
Йожкин Кот; swenzik; +2 Ответить
23. Xershi 1496 12.08.19 16:09 Сейчас в теме
(22) ну это для первого варианта подходит, а для локальной сети для поиграться?
24. mitia.mackarevich 74 12.08.19 18:53 Сейчас в теме
(23) Для локальной сети выпиши сам себе сертификат
3. user953800 11.08.19 01:27 Сейчас в теме
Удивительно - раздавать за "см" не своё, так еще и старьё.
Github - проект win-acme
dsdred; Vasvas05; GODART; Lyolik; igee12; mitia.mackarevich; A_Max; ltfriend; iliabvf; Fox-trot; ziercool; 3vs; +12 Ответить
5. ellavs 1033 11.08.19 07:28 Сейчас в теме
Let's encrypt - прикольная штука. Как раз недавно у одного сайта закончился покупной 3х годовалый сертификат, решили не продлевать, а воспользоваться Let's encrypt. Он ежемесячно перевыпускает новый SSL сертификат. Практически все этот сертификат признают. Только мы не предложенной в статье консольной утилитой пользовались, а гуишным (визуальным) приложением. Там мастерок вполне не сложный помогает пройти нужные этапы. Приложение монтируется как сервис и занимается генерацией сертификатов и привязкой его к сайту без Вас.
6. ellavs 1033 11.08.19 11:55 Сейчас в теме
(5) посмотрела повнимательней статью... самое главное, что забыл сказать автор, упоминая Let's encrypt, это как раз то, о чем выше написала - что его достаточно один раз настроить и про просрочку SSL-сертификатов можно забыть, сервис сам ежемесячно следит за перевыпуском сертификата (т.е. он никогда не просрочится).
А то из статьи получается, что нужно делать сертификат на 3 месяца каждый раз ручками... ну это так, замечание :)
BoryaMbi; marku; user1021675; aximo; +4 Ответить
8. aximo 2040 11.08.19 12:05 Сейчас в теме
(6) совершенно верно, сертификат получается на 3 месяца, что указано мной. Ну все остальное - на развитие темы конечно!
14. ellavs 1033 11.08.19 12:54 Сейчас в теме
(8) да, Вы молодец - что упомянули эту тему, т.к. многие про этот функционал не знают. Мое дополнение лишь для того, чтобы те кто зайдут почитать понимали зачем вообще заморачиваться с этим сервисом (ведь ради трех месяцев этим заниматься не охота, а вот чтобы забыть о проблеме почти навсегда - уже стоит подумать...)
26. valentinko 157 13.08.19 14:17 Сейчас в теме
(6) Ну да, при одном условии.
хттп порт (по-умолчанию 80) должен быть в момент "перевыпуска" открыт на веб-сервере, что есть очень плохой затеей. Поэтому для автоматического "перевыпуска" лучше ограничить запросы по хттп.
27. ellavs 1033 13.08.19 15:19 Сейчас в теме
(26) насколько знаю - это только при первой генерации, дальше уже не нужно.
28. valentinko 157 13.08.19 15:43 Сейчас в теме
(27) Я тоже так думал. Однако каждый раз у меня "ругается" на недоступность из вне http://имя_домена/.well-known/acme-challenge....
Причём это и IIS, и apache/nginx.
Может "руки"?)
9. vsesam80 11.08.19 12:13 Сейчас в теме
(5)А вы не поделитесь ссылочкой на это приложение гуишное для перевыпуска сертификатов?
12. user953800 11.08.19 12:40 Сейчас в теме
(9) Описание проектов - доходите до заголовка "Windows / IIS" и ищите там в тексте "GUI"
Полученные ссылки оттуда на страницы скачивания 2-х проектов GUI:
GetCert
Certify SSL Manager
13. ellavs 1033 11.08.19 12:51 Сейчас в теме
(9) Certify SSL Manager - https://certifytheweb.com/
Прикрепленные файлы:
ra9000; bxz; vsesam80; +3 Ответить
33. user797153 21.10.19 17:49 Сейчас в теме
(5) А там не сложно перевыпускать ключи? Это через приложение делается?
7. AlexeyPapanov 463 11.08.19 12:03 Сейчас в теме
Уважаемые коллеги, а можно ip привязать к субдомену, чтобы лишний домен не покупать?
к примеру, есть у нас уже site.ru, а мы создадим бесплатно subdomain.site.ru и на него повесим сертификат.
11. user953800 11.08.19 12:23 Сейчас в теме
(7) У меня как раз 1С на поддоменах, в управлении ДНС домена создал А-записи для поддомена с указанием ip.. При этом Let's encrypt умеет wild-сертификаты - т.е. я получаю один сертификат, где прописаны мои поддомены (2шт).
Прикрепленные файлы:
10. vsesam80 11.08.19 12:14 Сейчас в теме
Может кто знает коллеги, как бы ssl к сервису no-ip прикрутить? Не у всех белый, статический ip есть.
15. user953800 11.08.19 12:55 Сейчас в теме
(10) А в чем проблема? Главное сделать проброс 80 и 443 портов. Проверка может проводиться созданием в каталоге сайта файла верификации. Если файл обнаружен, сайт верифицируется и выдается сертификат. Прочие сертификаты на этот сайт, если они были зарегистрированы ранее в том же Let's encrypt, отзываются и считаются недействительными.
Просто поищите запрос "Let's encrypt dyndns" - такие вопросы англоязычные форумы разбирали.
16. vsesam80 11.08.19 13:44 Сейчас в теме
(15)В том и проблема. С пробросом портов нет вопросов. Но прикрутить серт к субдомену no-ip это оказалось той еще историей. Кто то пишет что вообще не возможно.
17. user953800 11.08.19 17:49 Сейчас в теме
(16) У самих NoIp написано, что они не поддерживают (пока) такой функционал в бесплатной версии.
Но можно попробовать скриптом win-acme (последнияя версия на сегодня v2.0.9.386) https://github.com/PKISharp/win-acme/releases
Сайт привязан к 80 порту с обязательным именем узла. (рисунок 1)

1. Скрипт запустить от имени администратора и Ввести "M" - full options (рисунок 2). В простом режиме "N" получал ошибку прохождения аутентификации.
2. Ввести "2" - single binding
3. Ввести цифру сайта из найденных
4. Можно написать свое имя или просто нажать enter
Следующие рекомендуемые шаги подсвечены зеленым - скриншот не стал до конца делать.

По итогу получил сертификат для сайта на динамическом ip. Скрипт также создает задание в планировщике на обновление сертификата.
Прикрепленные файлы:
vsesam80; +1 Ответить
19. Voblhned 58 12.08.19 07:35 Сейчас в теме
Ты забыл что уязвимость определяется по самому тонкому месту, где отключение 80 порта?
20. aximo 2040 12.08.19 08:04 Сейчас в теме
(19) разумеется.... отключите 80 порт или сделайте переадресацию на 443
21. starik-2005 3051 12.08.19 09:23 Сейчас в теме
А можно это все в докер обернуть и как переносимый сервис организовать?
bladeson; spezc; +2 1 Ответить
30. asved.ru 36 15.08.19 08:52 Сейчас в теме
(21) Можно. Только вазелин закупите, он ва м пригодится, когда докер сломается и убьет базу.
46. DENSKR 16 21.12.21 23:14 Сейчас в теме
25. dmpas 418 13.08.19 00:03 Сейчас в теме
Теперь, наша база опубликована по доменному имени и работает по защищенному соединению.

Читаем: "Торчит попкой наружу". Да, соединение шифрованное. Но теперь Главбух Маша с полными правами и паролем "12345" неожиданно начнёт работать из Китая, Швейцарии или Перу.
Торча наружу было бы здорово озаботиться ещё парой штук:
1. Клиентские сертификаты - 1С в них умеет
2. Не привязывать доменное имя непосредственно к внешнему IP-адресу своих серверов - только прослойка.

Иначе "защищённость" есть, а безопасности больше не стало.
asved.ru; +1 Ответить
29. valentinko 157 13.08.19 15:50 Сейчас в теме
(25) Вы всё говорите правильно.
Только автор описал немного другую тему. Конкретно - 1С + IIS + SSL (Letsencrypt) - как базовая инструкция )
А всё что Вы говорите - можно продолжать долго.
38. user1454221 24.08.20 22:02 Сейчас в теме
(25) Да, с клиентскими работает. я делал на само подписанном.
41. TorLink 27.10.21 16:23 Сейчас в теме
(25)
1. Клиентские сертификаты - 1С в них умеет
Гдеб почитать как их готовить. 1С то понятно, но вот как его сформировать, чтобы работало только с установленным на клиенте сертом, описаний в сети не нашёл.(
42. Aluvika4 13.12.21 08:36 Сейчас в теме
(25) спасибо.
А не подскажете куда копать, чтобы было правильно (=безопасно)? Я без иронии: настроил http-сервис, отвечающий на вебхук стороннего приложения, все работает, но торчащий наружу хвост белого ip не дает покоя.
44. dmpas 418 13.12.21 09:12 Сейчас в теме
(42) Самый простой способ:
* покупаем домен
* покупаем виртуалочку
* на виртуалочке настраиваем проброс HTTPS-запросов на белый IP (или вводим виртуалку в VPN и пробрасываем внутрь VPN)
* внешнему миру отдаём ссылку на наш домен-прослойку

Слабое звено - домен: увели домен - рухнула вся схема. Поэтому не стоит брать бесплатные.
Если уже засветили белый IP, то схема бесполезна - сначала надо поменять белый IP.

Но с этим всем, конечно же, лучше идти к профессиональным безопасникам.
Aluvika4; +1 Ответить
45. Aluvika4 13.12.21 22:39 Сейчас в теме
31. Novikoff 16.08.19 16:19 Сейчас в теме
По поводу автоматического продления Let's encrypt:

C помощью win-acme получен сертификат 7.06.2019, конец 5.09.2019. В планировщике задание создалось. Все работало. Недавно получил письмо с темой Let's Encrypt certificate expiration notice for domain "cntuik.ddns.net". Решил посмотреть как дела с обновлением сертификата и увидел,что начиная с 2.08.2019 задание вполняется с ошибкой следующего плана:
Authorization timed out
Renewal for "[IISBinding] <имя домена>" failed, will retry on next run

Попробовал вручную запустить обновление - результат тот же:
C:\Windows\system32>C:\Install\win-acme\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"

[INFO] A simple Windows ACMEv2 client (WACS)
[INFO] Software version 2.0.9.386 (RELEASE)
[INFO] IIS version 10.0
[INFO] Please report issues at https://github.com/PKISharp/win-acme

[INFO] Renewing certificate for [IISBinding] <имя домена>
[INFO] Authorize identifier: <имя домена>
[INFO] Authorizing cntuik.ddns.net using http-01 validation (SelfHosting)
[EROR] Authorization timed out
[EROR] Renewal for [IISBinding] <имя домена> failed, will retry on next run

И так уже две недели - никто не сталкивался?
32. Novikoff 21.08.19 13:01 Сейчас в теме
Отвечаю сам себе. Должен быть открыт 80 порт, возможно лучше 443,но буду проверять после отпуска - https://letsencrypt.org/docs/challenge-types/. Порт был нестандартный,а 80 закрыт.
34. stanisoni 19.02.20 21:56 Сейчас в теме
Уже голова кипит, как решить эту проблему?
Уже создавал папки well-known/acme-challenge и прописывал их в виртуальные каталоги IIS...так и не могу решить
Прикрепленные файлы:
35. FilippovRI 73 25.02.20 11:29 Сейчас в теме
(34) превысил лимит подключений, в день не больше 5
36. stanisoni 28.02.20 06:52 Сейчас в теме
(35)Как я понял Let's encrypt пытается создать файл для проверки в папке .well-known/acme-challenge, но IIS не дает доступ, а вот как и где его настроить, не могу понять.
37. FilippovRI 73 29.02.20 01:35 Сейчас в теме
(36) папке дай права пользователю iis users. если не получится напиши в лс готов буду помочь
40. user1458376 30.08.21 03:06 Сейчас в теме
(37)Здравствуйте, не могли ли вы помочь с настройкой, похожее сообщение выскакивает
{
"type": "urn:ietf:params:acme:error:unauthorized",
"detail": "Invalid response from https://vh388.timeweb.ru/parking/?ref=хх.хххх.хх [2a03:6f00:6:1::bce1:3f8f]: \"<!DO CTYPE html>\\n<ht ml lang=\\\"en\\\">\\n<head>\\n <met a charset=\\\"UTF-8\\\">\\n <met a name=\\\"viewport\\\" content=\\\"width=device-width, initia\"",
"status": 403
}
39. unduty 20.08.21 13:43 Сейчас в теме
Уважаемые гуру, подскажите если проброс порта будет ХХХХ-443 , (80 и 443 закрыты, открыт только 443 на IIS) сертификат будет обновляться и работать ? можно будет обращается к сайту строкой HTTPS://1c.mydomen.ru:XXXX ?
47. EKutuzov 18.05.22 12:09 Сейчас в теме
Всё вроде делаю по инструкции. Дохожу до момента с Консолью. Запускаю, а там сообщение:
Прикрепленные файлы:
48. EKutuzov 18.05.22 12:10 Сейчас в теме
(47) Ну и по нажатию на Enter консоль отрубается
49. aximo 2040 18.05.22 16:15 Сейчас в теме
не уверен, что кириллица в пути вашем дает корректный результат.
50. EKutuzov 24.05.22 12:35 Сейчас в теме
(49) Создали нового пользователя на латинице. Тоже самое:
Прикрепленные файлы:
51. aximo 2040 24.05.22 17:33 Сейчас в теме
(50) судя по ошибке "невозможно разрешить имя..." - что-то у вас с политикой безопасности....
52. AZ_92 08.11.22 10:37 Сейчас в теме
Проблему на скриншотах подтверждаю даже с латиницей. Знать бы куда лезть в политику безопасности, чтобы лишнее не открыть.
Не думал, что с SSL-кой будет п...ц как сложно....
Прикрепленные файлы:
53. AZ_92 08.11.22 11:57 Сейчас в теме
Нашел ответ на оф сайте, сервер https://acme-v01.api.letsencrypt.org/ устарел и отключен, а в архиве файл скомпилирован на этот адрес и поэтому ошибка при обращении.
54. AZ_92 08.11.22 12:31 Сейчас в теме
Оставьте свое сообщение