1С + Apache + SSL: почему вы должны использовать SSL (наглядная демонстрация)

























Иллюстрированных  руководств по установке веб-сервера Apache и публикации базы в интернете достаточно. Однако почти никто не обращает внимания на безопасность и не настраивает использование защищенного https протокола, а не http. В этой заметке описана пошаговая установка и настройка Apache, продемонстрирована лёгкость, с которой злоумышленник может узнать ваш пароль, если вы не используете https. Описана пошаговая настройка https для Apache.

 Рассмотрим установку Apache на WindowsXP и публикацию файлового варианта базы на веб-сервер.

Надо заметить, что при работе с веб-сервером рекомендуется использовать не файловый, а серверный вариант работы 1С:Предприятия, т.к. связка веб-сервер+файловая БД вызывает значительную деградацию производительности при числе удаленных пользователей  даже от 3х человек.

Что понадобится:

  • Компьютер1 («Сервер»). На нём установлена Платформа 8.2 (при установке платформы не забудьте выбрать «модули расширения веб-сервера») и веб-сервер. На сервере должен быть доступен порт 443 (или какой-нибудь другой).
  • Отмечаем модули расширения веб-сервера в установщике платформы
  • Компьютер2 («Клиент»). Должен «видеть» Компьютер1 по сети. На нём установлен тонкий клиент, или просто браузер.
  • дистрибутив Apache 2.2 с внедренным OpenSSL (http://httpd.apache.org/download.cgi) — Win32 Binary including OpenSSL 0.9.8t (MSI Installer).

Установка Apache for Windows

  • Скачиваем дистрибутив Apache 2.2 с внедренным OpenSSL (http://httpd.apache.org/download.cgi) — Win32 Binary including OpenSSL 0.9.8t (MSI Installer).
  • Запускаем (нужны права администратора), next, соглашаемся с лицензионным соглашением, next.
  • Заполняем network domain, server name, administrator’s e-mail. Прописываем что угодно, например localhost, 123@localhost
  • Вводим информацию о сервере (любую)
  • Выбираем Typical установку. Next. Next. Install.
  • Ждём, пока установится. Finish
  • Проверяем работоспособность Apache. Заходим http://localhost/ с локального компьютера и http://[ip адрес компьютера] с другого. Должно появиться «It Works!».
  • Апач работает на 80 порту, http

 

Публикация базы 1С на веб-сервер.

Тут всё просто.

Администрирование —> публикация на веб-сервере.

Публикация базы на веб-сервер

Имя – то, что будет в адресной строке. Например, mysite.ru/UNF_Demo_web

Каталог – любая папка. В ней будет один маленький конфигурационный файл. Чем короче к ней путь и чем меньше в нём пробелов, тем иногда бывает меньше глюков у апача.

Нажимаем «Опубликовать», пару раз соглашаемся с перезапуском веб-сервера.

Всё! Публикация выполнена, запускаем браузер на клиенте, переходим по адресу [myhost]/[Имя].

 Доступ к базе, используется http

 

На этом обычно все и заканчивают. Однако, поскольку доступ осуществляется по http, через незащищенный канал, передаваемая информация, в т.ч. пароли, может оказаться доступной для третьих лиц.

Не будем голословны, убедимся.

Извлекаем пароль

Используя любой сниффер, можно отследить запрос к серверу, где клиент передает какие-то данные, сразу после того, как пользователь ввёл логин, пароль и нажал кнопку ОК.

Сниффер, запрос, содержащий данные авторизации

Очевидно, что пароль запрятан где-то в параметре credential («удостоверение»): cred=VGltb2ZlZXZhOjEyMzMyMQ== – другие не подходят по смыслу. Однако явного пароля мы тут не видим. Так может какая-то защита от пароля всё-таки используется?

Изучим страницу авторизации под отладчиком. В строке 147 файла loader.js наблюдаем:

Страница авторизации, loader.js

Переменные: name (содержащая имя пользователя — timofeeva), dvk (содержит пароль в открытом виде — 123321).

Dvm = name + “:” + dvk // теперь dvm = “timofeeva:123321”

Затем к dvm применяется функция base64encode и результат (строка «VGltb2ZlZXZhOjEyMzMyMQ==» сохраняется в dvn. В таком виде данные об авторизации и передаются на сервер. BASE64 – это метод кодирования информации, когда все символы «сужаются» до только печатных, английских. Не представляет трудности восстановить эту строку. К примеру, в 1С:Предприятие есть метод глобального контекста Base64Значение (), есть немало и онлайн-сервисов.

Воспользуемся одним из них, и получим timofeeva:123321, т.е логин и пароль, разделённые двоеточием.

Декодированная строка с данными для авторизации

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

Поэтому переходим к следующему шагу и включаем поддеркжу SSL.

 

 

Включение поддержки SSL в Apache

Открываем файл httpd.conf в папке C:Program FilesApache Software FoundationApache2.2conf. Находим строку Listen 80, под ней дописываем Listen 443 (стандартный https порт)

Добавляем прослушивание 443 порта в httpd.conf

Копируем файлы ssleay32.dll и libeay32.dll из C:Program FilesApache Software FoundationApache2.2in в C:WINDOWSsystem32.

Копируем файл openssl.cnf из C:Program FilesApache Software FoundationApache2.2conf в C:Program FilesApache Software FoundationApache2.2in.

Создаем ключи. Т.к. мы создаем их сами и не подписываем в центре сертификации, при первом посещении странички браузеры будут ругаться и предупреждать о безопасности.Для этого:

В командной строке переходим в папку bin апача:

cd “C:Program FilesApache Software FoundationApache2.2in”

Выполняем команду

 openssl req -config openssl.cnf -new -out my-server.csr

Отвечаем на вопросы, в принципе можно заполнять поля чем угодно – главное не забудьте пароль (pass phrase).

Выполняем

openssl rsa -in privkey.pem -out my-server.key

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

Выполняем

openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 5999

, где последний параметр – срок истечения валидности сертификата.

Выполняем

openssl x509 -in my-server.cert -out my-server.der.crt -outform DER

Создаем папку ssl в C:Program FilesApache Software FoundationApache2.2conf и перемещаем файлы my-server.key и my-server.cert из C:Program FilesApache Software FoundationApache2.2in в C:Program FilesApache Software FoundationApache2.2confssl.

В файле httpd.conf ищем строку

#LoadModule ssl_module modules/mod_ssl.so

и раскомментируем её (убираем знак решетки).

Раскомментируем подгрузку подуля ssl

Идем в самый конец httpd.conf, там строки

Этот кусок конца httpd.conf удаляем

 
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
 

 

 

Удаляем их.

Вместо них вставляем следующие

 

Новый конец файла httpd.conf

 

 

 
 
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLMutex default
SSLSessionCache none
 
 
 
 
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
 

 

Обратите внимание на последний блок со строкой, содержащей localhost:443

Вместо localhost надо вписать собственно адрес вашего сервера, по которому и будут идти обращения. Например, mysite.ru:443

Если этого не сделать, то клиент будет видеть странное сообщение об ошибке(в firefox — «SSL получило запись, длина которой превышает максимально допустимую.»). И ещё большую странность ему будет добавлять то, что в разных браузерах будут разные сообщения.

Ошибка ssl при неверной секции </VirtualHost> файла httpd.conf

 

 Записываем изменения и закрываем httpd.conf

 

Запускаем редактор реестра (Пуск-выполнить – regedit), переходим в ветку HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesApache2.2.

 

Находим параметр ImagePath, и добавляем к его значению ключ -D ssl. Т.е. должно получиться «C:Program FilesApache Software FoundationApache2.2inhttpd.exe» -D ssl -k runservice.

Новый параметр для запуска апача

Всё готово. Перезапускаем apache. Открываем Apache Monitor из области уведомлений и нажимаем restart. Если все отлично, то в лог выведется Apache service has restarted.

 

Если что-то не так, и apache не запускается, можно посмотреть подробности (например номер строки с ошибкой в httpd.conf) в журнале событий (панель управления- администрирование – просмотр событий – ветка «приложение». )

 

Проверим нашу работу

Заходим на сервер, для меня это https://192.168.179.129/UNF_Demo_web.

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

Всё работает, причем по ssl каналу. Мы молодцы? НЕТ.

Исправляем недостатки

Как известно, уровень безопасности системы равен наименее безопасному её элементу.

Уберём букву s в адресной строке. Любой пользователь по прежнему может зайти через http. И все старания по обеспечению безопасности сошли на нет.

Отключим полностью 80 порт, убрав или закомментировав (добавив # в начало строки) строку Listen 80 в конфигурационном файле httpd.conf. Перезапустим службу apache.

Отключаем прослушивание 80 порта

Отлично, теперь страница http://192.168.179.129/UNF_Demo_web не работает.

Теперь убедимся, что небезопасное http подключение, но к 443 порту не работает тоже. http://192.168.179.129:443/UNF_Demo_web выдает ошибку.

 Обращение на порт 443 по http не пройдет!

Заключение

Мы получили работающий веб-сервер Apache с опубликованной базой 1С. Доступ возможен только по безопасному протоколу https. Настройка https занимает не так много ресурсов, зато обеспечивает защиту от перехвата паролей.

При внедрении решения на управляемых формах, при необходимости использования одной базы в территориально разделённых офисах, использование веб-сервера Apache + браузера/тонкого клиента выглядит привлекательнее, чем использование терминального сервера (Апач бесплатный) или VPN-подключения (апач проще в настройке).

 

81 Comments

  1. anton.fly7

    Для web-сервисов такой же путь замены http на https ?

    порт можно использовать любой, а не только стандартный 443?

    Reply
  2. galuse

    (1) anton.fly7, Точно так же. Публикация web-сервисов осуществляется в том же окне (администрирование — публикация на веб-сервере), и по умолчанию они все уже отмечены для публикации. Порт можно использовать любой.

    Reply
  3. anton.fly7

    про публикацию я в курсе ))

    спрашиваю про доступ к опубликованным web-сервисам из вне, не понадобится танцев с бубнами чтоб доступ все-таки был?

    Reply
  4. galuse

    (3) anton.fly7, понадобится бубен(. http://infostart.ru/public/70286/

    Reply
  5. EmpireSer

    Извините, но как же нагрузка на сервер?

    SSL шифрование ужасно нагружает сервер! Если не применять сетевые фильтры для защиты от ddos-а — сервер можно положить как бы «правильными» обращениями.

    Сейчас мировое сообщество ищет альтернативные пути передачи зашифрованных данных с меньшими нагрузками на сервер.

    Reply
  6. galuse

    (5) EmpireSer, Полностью согласен. Например, можно было бы использовать авторизацию по https, а все остальные данные передавать по http (так работает ВКонтакт). Однако, как приложить тенденции мирового сообщества к 1С:Предприятию, я не знаю.

    Reply
  7. Трактор

    (6)

    Однако, как приложить тенденции мирового сообщества к 1С:Предприятию

    Полностью работать через vpn канал по http. Для облака не подойдёт, но для одного предприятия вполне хорошее решение.

    Reply
  8. EmpireSer

    (7) Трактор, VPN канал возможен только при полном контроле сервера. А если организуется внутренний сайт для взаимодействия с клиентами (как в 1С-Битрикс), то каждому клиенту настраивать VPN канал, пинать их админов (а они «тяжко» пинаются, если они вообще есть). Как я представляю — будет ужас.

    (6) Я читал об одной реализации альтернативного шифрования канала связи в интернете, но уже не помню где это найти. Сходу — не нашёл.

    Зато увидел такие ещё технологии: TLS и SSH.

    Reply
  9. Трактор

    (8) EmpireSer,

    сайт для взаимодействия с клиентами (как в 1С-Битрикс)

    Дай ссылку на описание решения Битрикса.

    Я сделал иначе. Внешний сайт сам по себе. Работает с веб сервисами 1С, опубликованными на внутреннем сервере. Разработка такого решения труднее, область применения ограничена, но защищённость хорошая.

    Reply
  10. EmpireSer

    Дай ссылку на описание решения Битрикса.

    (9) Трактор, 1С-Битрикс не описывает решение проблемы безопасности, там только модуль для «внешнего мира» (экстранет)

    «1С-Битрикс: Корпоративный портал — Совместная работа»

    Я ездил на семинар пол года назад и там «Экстранет» позиционировали как удобное средство для организации работы с клиентами/партнёрами/акционерами с удобными механизмами настройки прав, лёгким совместным редактированием документов и т.п.

    А так как именно эта часть 1С-Битрикс «смотрит» в интернет, то её нужно шифровать постоянно (по логике конкурентной борьбы).

    Reply
  11. Трактор

    (10) EmpireSer,

    Интеграция позволяет выгружать из 1С на корпоративный портал

    Битрикс вживую не работает с 1С. Выгрузка/загрузка.

    Reply
  12. EmpireSer

    (11) Трактор, спокойно работает через управляемые формы.

    Reply
  13. Трактор

    (12) EmpireSer,

    спокойно работает через управляемые формы.

    1С да, работает. Но причём тут Битрикс?

    Reply
  14. EmpireSer

    (13) Трактор, да я то писал про то, что не у всех фирм есть возможность создать VPN канал для клиентов, если они (клиенты) с фирмой общаются через вот такие «единые сайты».

    Тут и SSL не приделаешь из-за нагрузки, и «облака» стоят денег не малых для небольших (но шустрых) организаций.

    Я тут подумал, что можно использовать комбинацию:

    1. Весь сайт, кроме 1 места, работает по http

    2. Авторизацию получаем именно в месте работы SSL

    3. А вот тут магия: при авторизации на 2 п. сервер и мы создали хеш-ключ от пароля и им шифруется контент. Хеш-ключ знает лишь сервер и лишь браузер и ни какой его передачи.

    Ну это черновой вариант…

    Если сказать точнее — то создать что-то на подобие шифровального прокси, но используя возможности самого веб сервера и AJAX-са в браузере.

    Reply
  15. Rustig

    Спасибо за статью!

    Я не по теме спросить хочу 🙂

    Вот я не разбираюсь в вебсерверах, и меня мучают угрызения совести… не могу успокоиться: надо ли мне это знать или нет?

    Хотел бы найти ответ на вопрос: есть ли в природе 1С-спецы-универсалы, которые и по зарплате консультируют и по налоговому учету, и веб-сервер могут развернуть, программируют как на 7.7 и 8.2 (УправлФормы). Или все-таки происходит некоторое нишевание специализаций? заранее спасибо за ответ! 🙂

    Reply
  16. LelikOFF

    Спасибо, интересная статья, очень подробное описание процесса, подключения к базе через http и настройки сервера apache, в начале по картинкам подумал дежавю, но нет.. статья на уровне.

    Reply
  17. kirillkr

    (15) не обязательно. Но для повышения самообразования, да и на повышение значимости у работодателя знать основы желательно. Там не так сложно, надо просто несколько раз попробовать. Я, например, на Windows’е голый Apache никогда не разворачивал, только из сборки Denwer или XAMPP. Но развернув 10 раз на линуксе я уверен, что мне не потребуются часы, чтобы развернуть его на винде.

    Reply
  18. Программулькин

    пасибо за картинки

    Reply
  19. damontut

    вот бы еще тоже самое под IIS и Windows 2008R2 сделать…

    Reply
  20. karakozov

    Решение не уникально, но поговорить об этом стоило.В очередной раз разворачивая Апач подсмотрю в эту публикацию.

    Reply
  21. Gandalf Белый

    Большое спасибо! Было очень интересно прочитать статью, особенно про снифер! ))

    Reply
  22. galuse

    (15) Rustig, Совесть мучает зря). Лишних знаний не бывает, но знать всё — тоже невозможно. Спецы, которые знают ВСЁ (почти) — существуют, но это редкость. Обычно всё-таки разделение труда среди 1с-ников, хоть и небольшое, но есть. Можно прожить счастливую жизнь с неплохой з/п, специализируясь на чем-то конкретном — скажем, на з/п, а не управл.уч. Что касается веб-сервера, то коллега прав, можно просто попробовать, ничего сложного нет.

    (3) anton.fly7,

    Ура! В 8.3 бубен уже не нужен, в «новые возможности и изменения»: «Работа с Web-сервисами по протоколу https стала возможной с использованием клиентских сертификатов»

    Reply
  23. anton.fly7

    (15) знаю 1с6, знаю 1с77 (более 10 лет), знаю 1с8х (5 лет), знаю web-сервисы, знаю ЗиК и ЗУП. С налоговым учетом сложнее…

    Reply
  24. Rustig

    (23) 🙂 Спасибо! Порадовали 🙂

    Reply
  25. anton.fly7

    (24) хорошо, сегодня день у вас прошел не зря!

    Reply
  26. klel

    Большое спасибо теперь будет чего написать админам 🙂

    Reply
  27. KliMich

    Спасибо за подробную инструкцию. Конечно, как советует kirillkr, знать основы желательно …

    Reply
  28. ArtfulCrom

    Что-то я не понял. А настройка самого сервера 1С — ШИФРОВАНИЕ ДАННЫХ уже не устраивает? или это она и есть?

    Reply
  29. nissal

    Огромное спасибо за инструкцию! Настроил. Навскидку, если есть соображения: где я промахнулся? С сервера по внешнему IP работает, а из интернета, почему-то, нет, тайм-аут превышен. С обеих машин захожу по адресу https://xx.xx.xx.xx/Service-Folder

    Открыл временно http, Listen 80, пока не пойму, что сделал не так. Работает и из интернета. Есть подозрение, что не так где-то в теге VirtualHost:

    <IfModule ssl_module>

    #SSLRandomSeed startup builtin

    #SSLRandomSeed connect builtin

    SSLMutex default

    SSLSessionCache none

    </IfModule>

    <VirtualHost хх.хх.хх.хх:443>

    SSLEngine On

    SSLCertificateFile conf/ssl/my-server.cert

    SSLCertificateKeyFile conf/ssl/my-server.key

    </VirtualHost>

    где хх.хх.хх.хх — реальный адрес веб-сервера

    Спасибо заранее!

    Reply
  30. Гость

    Уникальная для 1С статься и с хорошими иллюстрациями. Спасибо, рано или поздно пригодится.

    Reply
  31. e-ilyich

    Спасибо за статью, прямо в тему и вовремя ))

    Reply
  32. ivdic

    Ускорит ли работу 1с apache 64 бит?

    Reply
  33. xxxpb_

    Здравствуйте коллеги.

    У меня один вопросик, возможно немного не по теме.

    есть ли возможность подключения клиентов к 1С используя «веб-клиент», но при подключении чтоб они вбивали свой логин и пароль и не ВИДЕЛИ СПИСОК ВСЕХ ПОЛЬЗОВАТЕЛЕЙ 1С!!! и если существует такая возможность ткните пожалуйста туда где мне можно почитать про это… спасибо.

    Reply
  34. biformatus

    (33) xxxpb_, отключи в конфигураторе для каждого пользователя флаг «Показывать в списке выбора»

    Reply
  35. tritonrc

    Большое спасибо за статью, очень пригодилось.

    если у кого то будет ошибка 107 подключения к серверу, о проблеме ssl, просто закоментируйте пару строк

    <IfModule ssl_module>

    SSLRandomSeed startup builtin

    SSLRandomSeed connect builtin

    SSLMutex default

    SSLSessionCache none

    </IfModule>

    #<VirtualHost localhost(mysite.ru):443>

    SSLEngine On

    SSLCertificateFile conf/ssl/my-server.cert

    SSLCertificateKeyFile conf/ssl/my-server.key

    #</VirtualHost>

    Reply
  36. a.abelentsev

    А вот вопрос: если я цепляюсь к базе не через браузер, а тонким клиентом по адресу https://... — нужны ли какие-то дополнительные настройки?

    Или тонкий клиент сам догадается сходить в хранилище сертификатов? (предположим, я первый раз зашел браузером и добавил сертификат в доверенные).

    Reply
  37. LexSeIch

    Мир этому дому!

    Статья интересная. Два в одном — настройка сервера и обеспечение безопасности. По статистике, компьютер с выходом в интернет подвергается атаке в первые же 30 секунд. Любой может посмотреть логи своего терминального сервера и увидеть неудачные попытки авторизации… Статью взял на заметку.

    Reply
  38. a.abelentsev

    коллеги, и всё-таки, как заставить работать тонкий клиент при подключении по строке вида «https://…»?

    Сейчас при попытке подключения пишет такое:

    Невосстановимая ошибка

    Ошибка при выполнении запроса POST к ресурсу /e1cib/login:

    по причине:

    Ошибка HTTP при обращении к серверу: https://work.artsaterra.ru

    SSL connect error

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

    Reply
  39. teller

    Из документации:

    При подключении по https тонким клиентом набор возможностей несколько ограничен:

    ● Использование клиентских сертификатов не поддерживается.

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

    т.е. берем cert сгенеренный для apache,импортируем на рабочей станции тонкого клиента

    набираем в тонком клиенте строку соединения например https://192.168.3.21/db1c_web

    соединяемся — смотрим :

    Платформа: 1С:Предприятие 8.2 (8.2.18.61)

    Конфигурация: Зарплата и управление персоналом, редакция 3.0 (3.0.5.22) (http://v8.1c.ru/hrm/)

    Copyright © ООО «1C», 2003-2012. Все права защищены

    (http://www.1c.ru)

    Режим: Веб-сервер (сжатие: усиленное)

    Приложение: Тонкий клиент

    Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)

    Reply
  40. Katano

    Кому нибудь удалось подключить тонкий клиент к https

    Reply
  41. Katano

    Через веб работает а в режиме тонкого клиента не хочеть , md5 отпечаток добавил в cacert.pem. выдает : Ошибка HTTP при обращении к серверу: Problem with the SSL CA cert (path? access rights?)

    Reply
  42. maip1

    Отличная статья! Спасибо огромное!

    Reply
  43. d0dger

    Спасибо за труд. Полезная статья

    Reply
  44. Alex_IT

    Очень подробно и по делу. Спасибо!

    Reply
  45. check2

    Доброго времени суток. Насколько я понял из статьи использование IIS вместо Apache не решает ситуации?

    Reply
  46. aka74u

    Доброго времени суток коллеги! Кто смог подключить тонкий клиент через ssl поделитесь подробностями.

    Reply
  47. rafaiil

    Всем привет! на шаге «Отвечаем на вопросы, в принципе можно заполнять поля чем угодно – главное не забудьте пароль (pass phrase).» Возникла проблема: cmd не дает набирать символы.просто ничего не получается набрать.Что делать?

    Reply
  48. Pavell_07

    Спасибо за статью! При настройке столкнулся с 2 проблемами: не вводился пароль и после перезапуска апача вылетала ошибка «The requested operation has failed». По первой проблеме оказалось что пароль вводится, но не отображается, а 2 проблема была связана с тем, что апач по умолчанию ставится в «C:/Program Files(x86)….» и из-за скобок происходит ошибка. Решил перестановкой в другую папку. В интернете есть другие решения данной проблемы.

    Reply
  49. kirinalex
    Настройка https занимает не так много ресурсов, зато обеспечивает защиту от перехвата паролей.

    защита только паролей? трафик разве не шифруется?

    Reply
  50. Tapochki-tmn

    (47) rafaiil,

    Я как смог отменил этот диалог и начал заново, помогло.

    Уже не помню, просто Enter жал, кажется.

    Reply
  51. ValeriVP

    генерация ключей проще:

    C:Program Files (x86)Apache Software FoundationApache2.2in>openssl req -x509 -config openssl.cnf -nodes -days 5999 -newkey rsa:2048 -keyout apache.key -out

    apache.crt

    Reply
  52. motorin

    Спасибо за статью, через браузер и через тонкий всё работает, а вот мобильное приложение Заказы не хочет, кто сталкивался, как решить?

    Reply
  53. ayarov

    Спасибо, за детальную статью-инструкцию, всё работает.

    Но есть такой нюанс: через «файл-открыть» пользователи видят содержимое дисков всего сервера, и очень хотелось бы закрыть им такую возможность. Апач у меня запускается под системной учётной записью винды, соотв. для неё не настроить запрет на доступ файлам и папкам, а если запускать службу от другой учётки — то не понятно как настроить запуск самого Апача. Можете подсказать куда копать?

    (Апач 2.2 32х, Виндовз Сервер 2016 стандарт)

    Reply
  54. stinim

    (53) апач по дефолту запускается от системной учетки — туда и копать

    Reply
  55. Nandarou

    У меня при запуске службы была ошибка что нет или пустой my-server.cert. Переименовал файл в my-server.crt все заработало.

    Reply
  56. Nandarou

    По стать берется установка Apache 2.2 с openssl, который и на момент написания статьи, как я понимаю был не самой последней версией. С точки зрения безопасности можно сейчас использовать последние доступные версии Apache 2.2 с openssl.

    Reply
  57. aka74u

    Кто-то пробовал завести 1с 64 бит + апач 64 бит? Что-то не работает даже без ssl.

    Reply
  58. KAV2

    Ребята есть два вопроса:

    1) является ли такое https соединение таким же безопасным, как и при использовании платных сертификатов?

    2) можно ли с помощью openssl сгенерировать сертификат для IIS веб сервера?

    Reply
  59. KAV2

    (7) VPN хорошее решение но он хуже тем, что требует запуска VPN клиента. Если доступ нужен руководителю в коммандировке, для него это лишний, непонятный гемор в сравнении например с решениями вроде smartsheet который просто берешь и открываешь.

    Reply
  60. Suxar

    Статья хорошая, узнал для себя полезные вещи, но «VPN-подключения (апач проще в настройке)» не очень корректно. На мой взгляд VPN настроить проще.

    Reply
  61. Terve!R

    Ничего не понял, статья заканчивается тем, что «Отлично, теперь страница не работает, и вот так тоже не работает». А как работает-то?

    Reply
  62. Terve!R

    Все, понял.

    А если официальный сертификат на год выдает регистратор? Как его себе на сервер прикрутить?

    Reply
  63. krasnodar-it

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

    Как вариант дополнительной ступени безопасности можно использовать htpasswd как первый уровень авторизации для доступа к опубликованной базе.

    Reply
  64. ВикторП
  65. nicxxx

    Apache не запускается, если написано SSLMutex default. Если же написать Mutex default, то все ОК.

    Reply
  66. ArchLord42

    (5) «ужасно» это на сколько, в цифрах? Думается мне, вы в реальности с ssl не сталкивались, раз так говорите.

    Nginx на слабеньком облачном серваке, арендуемым на Джино за 1.5к в месяц, спокойно вывозит больше 100 соединений, при этом у него ещё есть запас в районе 30%, на от iis’ов которые он проксирует вообще нагрузка не заметна на апстримах.

    Reply
  67. frkbvfnjh

    А как сделать, что бы на https работали только выборочные публикации? К примеру у меня куча публикаций работает на http, и просто поменять на https не могу, т.к. идет обмен с мобильными приложениями написанными даже не на 1С и придется обновлять всех кто пользуется эти приложение, а это не реально, но какие то новые http-сервисы в той же самой конфигурации нужно что бы работали ТОЛЬКО через https. Такое реально настроить?

    Reply
  68. user745651

    Ребят, а подскажите как сделать, чтобы опубликованный веб сервис 1с был «виден» и работал с другого компьютера в сети.

    Установил АПАТЧ httpd-2.2.25-win32-x86-openssl-0.9.8

    На моем компе wsdl открывается и через localhost и через ip (правда из за какой то службы windows 80 порт был занят и я настроил через 81 порт с указанием этого порта в адресной строке)

    Reply
  69. sandybaev

    у Apache 2.4 не нашел файлы dll по описанию выше.

    https не запустил, не смог.

    есть другие способы запуска?

    Reply
  70. sandybaev

    В общем если подытожить.

    1. работает

    2. те кто спрашивал про ввод пароля и что там не видно их символов — это как в Линкус, пароли вы не увидите, но они примутся командной строкой.

    3. те кто спрашивал про SSLMutex данная команда исчезла с версии 2.2. пишите просто Mutex я так понимаю у вас 2.4 уже стоит

    4. те кто спрашивал про SSL для IIS прикрурить серт от Апач для Винды не получится. разные они в слепках sha ключей.

    На скринах показываю как видно на тестовом 8.3.13.1549

    есть два пункта которые меня настораживают/напрягают,

    1. почему вижу что «сайт не безопасный»? Кто может ответить? подсказать куда копать?

    2. почему 1с при запуске из конфигуратора переходит сразу по «http» а не по «https»? как с это побороть?

    Reply
  71. sandybaev

    в догонку скажу если кому интересно.

    многое смог сделать по данной статье.

    и на апач и на iis.

    в реальности все намного проще чем тут написано, т.е. настройка делается довольно просто, даже можно все повторить на Linux.

    Но есть одна тупая неточность с 1С.

    Когда из режима конфигуратора 1С жмешь F5 то тупо попадешь на HTTP вместо httpS и это раздражает.

    Reply
  72. Dimka74

    Только что настроил для Apache 2.4, может кому пригодится:

    Копируем файлы ssleay32.dll и libeay32.dll

    — этого делать не пришлось

    В httpd.conf добавил такой код:

    <IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    Mutex default
    SSLSessionCache none
    </IfModule>
    <VirtualHost localhost:443>
    SSLEngine On
    SSLCertificateFile conf/ssl/my-server.cert
    SSLCertificateKeyFile conf/ssl/my-server.key
    </VirtualHost>

    Показать

    Остался один вопрос: Как заставить Web сервер перенаправлять запросы с http на https?

    Нашел такой способ: добавить в конце httpd.conf

    <VirtualHost *:80>
    ServerName localhost
    Redirect / https://localhost:443/
    </VirtualHost>
    

    Но при этом, если попытаться пройти по ссылке http://localhost/sbg/ru_RU/, то ничего не получается, перенаправление не срабатывает 🙁

    Есть вариант сделать через файл .htaccess, добавив в него такой код:

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    Но сообразить не могу где должен лежать этот файл, если Apache установлен на Windows7.

    Reply
  73. user849113

    D ssl для чего нужен если его поставить то апач не запускаеться?

    Reply
  74. dr2c

    (73)

    Mutex default

    Очень актуально!

    Windows 10

    Добавил ваш код в conf

    Получаю такую ошибку:

    Syntax error on line 550 of C:/Apache24/conf/httpd.conf: Expected </b><u>Mutex> but saw </IfModule>

    В итоге сделал без нее и переадрессации

    добавил только:

    <IfModule ssl_module>

    SSLRandomSeed startup builtin

    SSLRandomSeed connect builtin

    SSLSessionCache none

    </IfModule>

    <VirtualHost localhost:443>

    SSLEngine On

    SSLCertificateFile conf/ssl/my-server.cert

    SSLCertificateKeyFile conf/ssl/my-server.key

    </VirtualHost>

    Взлетело! ЧТо означала </b><u>Mutex>?

    Reply
  75. wrooom

    Взлетело! Спасибо.

    Reply
  76. wrooom

    Мне нужен ssl для mysite.ru , а не для localhost. Причем сертификат должен быть не самоподписанный.. Как это сделать?

    Reply
  77. user603250_smykom

    Сделал настройки по Апач служба не запускается Ошибка: >>> (OS 10013)Сделана попытка доступа к сокету методом, запрещенным правами доступа. : AH00072: make_sock: could not bind to address 0.0.0.0:443 .

    Reply
  78. user603250_smykom

    Какая то системная служба (Процесс с ИД 4) заняла порт 443

    Reply
  79. user603250_smykom

    Получилось запустить Апач, похоже служба IIS использовала порты 80, 443

    Reply
  80. Diversus

    (0) Отличная статья, но у меня возникла одна проблема. Если кто знает ответ, просьба отписаться.

    Роутеры Keenetic позволяют использовать собственное доменное имя для проброса портов.

    Так вот, создал имя. Указал в настройках порт 443.

    Сделал проброс портов на роутере, чтобы извне можно было работать с 1С по HTTPS.

    Если заходить по HTTP с помощью этого имени все ок. Работает.

    Если же по HTTPS пишет ошибку 403 Forbidden.

    Кто знает в чем может быть причина?

    Reply
  81. butzoya

    Не заработало. После перезапуска Апач выдает ошибку

    The Apache service named reported the following error:

    >>> httpd.exe: Could not reliably determine the server’s fully qualified domain name, using 192.168.0.103 for ServerName

    Что это может значить?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *