Web service через https

1. gradi 5 01.10.18 10:34 Сейчас в теме
Здравствуйте, коллеги.
Подскажите, как можно указать при разработке веб-сервиса, что он работает через https?
adhocprog; +1 Ответить
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. herfis 496 01.10.18 10:45 Сейчас в теме
Читал, что это все настройками веб-сервера определяется. На конфу это никак не завязано.
3. herfis 496 01.10.18 10:46 Сейчас в теме
https web-сервисы разрабатываются так же, как и обычные http web-сервисы, но требуют дополнительной настройки веб-сервера. Для IIS веб-сервера настройка заключается в привязке к веб-сайту серверного сертификата и настройке виртуальной директории web-сервиса. Серверный сертификат может быть получен от Центра Сертификации, в качестве которого может выступать любой Windows Server 2003 с установленным сервисом сертификатов. После того как сертификат связан с веб-сайтом, для виртуальной директории web-сервиса нужно указать, что доступ к ней осуществляется по защищенному каналу связи (см. документацию по IIS).
Для Apache web-сервера также нужно указать серверный сертификат и признак работы по защищенному каналу. Сертификат может быть получен при помощи утилиты openssl
4. Green2 29 01.10.18 10:56 Сейчас в теме
Это не проблема 1С, это настройка вебсервера.
На IIS или на apache надо просто настроить https и он будет работать как обычный веб сервер только зашифрованный.
5. gradi 5 01.10.18 11:07 Сейчас в теме
После публикации получаю wsdl моего сервиса с такими строками
<service name="WSKometa">
<port name="WSKometaSoap" binding="tns:WSKometaSoapBinding">
<documentation>
<wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1"/>
</documentation>
<soapbind:address location="http://app.oblako1c.ru/webaccess/5350_1/ws/wskometa"/>
</port>
<port name="WSKometaSoap12" binding="tns:WSKometaSoap12Binding">
<soap12bind:address location="http://app.oblako1c.ru/webaccess/5350_1/ws/wskometa"/>
</port>
</service>
Показать

Адреса указаны с http. Из-за этого в последствии возникают ошибки.
6. herfis 496 01.10.18 11:17 Сейчас в теме
(5) При этом через https ходит нормально (сервер сконфигурирован)?
7. gradi 5 01.10.18 11:27 Сейчас в теме
8. herfis 496 01.10.18 11:33 Сейчас в теме
(7) Тогда не знаю :) Так как я не практик в этом вопросе, могу только идеи генерить :) Например - wsdl по https запрашивается?
9. gradi 5 01.10.18 11:34 Сейчас в теме
(8)
Например - wsdl по https запрашивается?

Да. Я этот веб-сервис использую в мобильной платформе. WSDL читается, а вот обращение к методам уже не проходит, т.к. по http они не доступны.
Я нашел обходной путь, но он похож на удаление миндалин через жопу.
adhocprog; +1 Ответить
11. herfis 496 01.10.18 12:05 Сейчас в теме
(9)
а вот обращение к методам уже не проходит, т.к. по http они не доступны.

Т.е. подключение к сервису явным образом производится защищенное, а ломиться он пытается все равно по http?
12. gradi 5 01.10.18 12:10 Сейчас в теме
(11) Не совсем так, как я понимаю. WSDL генерирует адреса по http.
13. herfis 496 01.10.18 12:36 Сейчас в теме
(12) Это понятно. Покажи код, которым ты подключаешься к этому сервису.
14. gradi 5 01.10.18 12:50 Сейчас в теме
(13)Принципиальный момент такой
        сервис = WSСсылки.WSСсылка1.СоздатьWSПрокси("WSKometa", "WSKometa", "WSKometaSoap12");
	сервис.Пользователь = "username";
	сервис.Пароль = "strongpass";
15. herfis 496 01.10.18 13:13 Сейчас в теме
(14) У СоздатьWSПрокси() есть параметр "ЗащищенноеСоединение". Возможно, если его корректно указать, то все и наладится.
16. gradi 5 01.10.18 13:20 Сейчас в теме
(15) Попробую такой вариант. Но подозреваю, что не сработает. WSСсылка создана с указанием адреса с https.
17. herfis 496 01.10.18 13:23 Сейчас в теме
(16) Тогда возникает законный вопрос - нафиг этот параметр нужен :)
20. Ditron 183 01.10.18 13:40 Сейчас в теме
(17)для создания WS ссылки программно, представь если адрес меняется (DNS), каждый раз в конфиг лезть и обновлять адрес )
19. Ditron 183 01.10.18 13:39 Сейчас в теме
(16)тем более если ссылка (в конфигурации) создалась успешно, значит подключение произошло!
22. gradi 5 03.10.18 09:45 Сейчас в теме
(19) подключение произошло, но wsdl выдает не корректные адреса (см. пример выше).
10. Green2 29 01.10.18 11:57 Сейчас в теме
Предлагаю закрыть http протокол средствами веб-сервера.

Я к примеру, запускал сайты и иногда отключить http можно только через настройки Apache в .htaccess
18. Ditron 183 01.10.18 13:37 Сейчас в теме
В name space всегда будет http, это-же протокол, а приставка "s" указывает только на то, что соединение защищенное и имеет порт не 80 а 443 (если конечно не менять в настройках веб сервера), разница лишь в инициации подключения, веб-сервису пофиг на каком соединении у вас http! И если у вас внешний (не типовой) веб сервис используете WSОпределения программно, а то каждый раз конфигурацию менять...
adhocprog; gradi; +2 Ответить
21. herfis 496 01.10.18 13:51 Сейчас в теме
(18) Речь не про name space, а про address location
(20) Это была ирония. Потому что я почти уверен, что явное указание протокола для прокси исправит ситуацию.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

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

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

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