0. aximo 807 10.08.19 22:00 Сейчас в теме

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

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. vsesam80 10.08.19 23:50 Сейчас в теме
Полезная публикация. Я так понял что все серты Let's encrypt будут приниматься Виндой как настоящие и не будут генерить ошибку как в случае с самоподписанными?
Вот еще бы как бы с Апачем это сделать и прикрутить сертификаты к сервису no-ip
2. Xershi 683 11.08.19 01:04 Сейчас в теме
Я так понял если у нас белый статический ip, а домена нет, то ничего не выйдет?
Тоже самое если я допустил развернул веб-сервер у себя в локальной сети, доменного имени нет, есть только имя ПК, тоже пшик или есть варианты?
4. aximo 807 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
23. Xershi 683 12.08.19 16:09 Сейчас в теме
(22) ну это для первого варианта подходит, а для локальной сети для поиграться?
24. mitia.mackarevich 27 12.08.19 18:53 Сейчас в теме
(23) Для локальной сети выпиши сам себе сертификат
3. user953800 11.08.19 01:27 Сейчас в теме
Удивительно - раздавать за "см" не своё, так еще и старьё.
Github - проект win-acme
Lyolik; igee12; mitia.mackarevich; A_Max; ltfriend; iliabvf; Fox-trot; ziercool; 3vs; +9 Ответить
5. ellavs 602 11.08.19 07:28 Сейчас в теме
Let's encrypt - прикольная штука. Как раз недавно у одного сайта закончился покупной 3х годовалый сертификат, решили не продлевать, а воспользоваться Let's encrypt. Он ежемесячно перевыпускает новый SSL сертификат. Практически все этот сертификат признают. Только мы не предложенной в статье консольной утилитой пользовались, а гуишным (визуальным) приложением. Там мастерок вполне не сложный помогает пройти нужные этапы. Приложение монтируется как сервис и занимается генерацией сертификатов и привязкой его к сайту без Вас.
6. ellavs 602 11.08.19 11:55 Сейчас в теме
(5) посмотрела повнимательней статью... самое главное, что забыл сказать автор, упоминая Let's encrypt, это как раз то, о чем выше написала - что его достаточно один раз настроить и про просрочку SSL-сертификатов можно забыть, сервис сам ежемесячно следит за перевыпуском сертификата (т.е. он никогда не просрочится).
А то из статьи получается, что нужно делать сертификат на 3 месяца каждый раз ручками... ну это так, замечание :)
8. aximo 807 11.08.19 12:05 Сейчас в теме
(6) совершенно верно, сертификат получается на 3 месяца, что указано мной. Ну все остальное - на развитие темы конечно!
14. ellavs 602 11.08.19 12:54 Сейчас в теме
(8) да, Вы молодец - что упомянули эту тему, т.к. многие про этот функционал не знают. Мое дополнение лишь для того, чтобы те кто зайдут почитать понимали зачем вообще заморачиваться с этим сервисом (ведь ради трех месяцев этим заниматься не охота, а вот чтобы забыть о проблеме почти навсегда - уже стоит подумать...)
26. valentinko 138 13.08.19 14:17 Сейчас в теме
(6) Ну да, при одном условии.
хттп порт (по-умолчанию 80) должен быть в момент "перевыпуска" открыт на веб-сервере, что есть очень плохой затеей. Поэтому для автоматического "перевыпуска" лучше ограничить запросы по хттп.
27. ellavs 602 13.08.19 15:19 Сейчас в теме
(26) насколько знаю - это только при первой генерации, дальше уже не нужно.
28. valentinko 138 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 602 11.08.19 12:51 Сейчас в теме
(9) Certify SSL Manager - https://certifytheweb.com/
Прикрепленные файлы:
vsesam80; +1 Ответить
7. AlexeyPapanov 330 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 39 12.08.19 07:35 Сейчас в теме
Ты забыл что уязвимость определяется по самому тонкому месту, где отключение 80 порта?
20. aximo 807 12.08.19 08:04 Сейчас в теме
(19) разумеется.... отключите 80 порт или сделайте переадресацию на 443
21. starik-2005 1921 12.08.19 09:23 Сейчас в теме
А можно это все в докер обернуть и как переносимый сервис организовать?
30. asved.ru 36 15.08.19 08:52 Сейчас в теме
(21) Можно. Только вазелин закупите, он ва м пригодится, когда докер сломается и убьет базу.
25. baton_pk 393 13.08.19 00:03 Сейчас в теме
Теперь, наша база опубликована по доменному имени и работает по защищенному соединению.

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

Иначе "защищённость" есть, а безопасности больше не стало.
asved.ru; +1 Ответить
29. valentinko 138 13.08.19 15:50 Сейчас в теме
(25) Вы всё говорите правильно.
Только автор описал немного другую тему. Конкретно - 1С + IIS + SSL (Letsencrypt) - как базовая инструкция )
А всё что Вы говорите - можно продолжать долго.
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 закрыт.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист стажер 1С
Нижний Новгород
зарплата от 30 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день