Web service через https

1. gradi 5 01.10.18 10:34 Сейчас в теме
Здравствуйте, коллеги.
Подскажите, как можно указать при разработке веб-сервиса, что он работает через https?
adhocprog; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. herfis 498 01.10.18 10:45 Сейчас в теме
Читал, что это все настройками веб-сервера определяется. На конфу это никак не завязано.
3. herfis 498 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 498 01.10.18 11:17 Сейчас в теме
(5) При этом через https ходит нормально (сервер сконфигурирован)?
7. gradi 5 01.10.18 11:27 Сейчас в теме
8. herfis 498 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 498 01.10.18 12:05 Сейчас в теме
(9)
а вот обращение к методам уже не проходит, т.к. по http они не доступны.

Т.е. подключение к сервису явным образом производится защищенное, а ломиться он пытается все равно по http?
12. gradi 5 01.10.18 12:10 Сейчас в теме
(11) Не совсем так, как я понимаю. WSDL генерирует адреса по http.
13. herfis 498 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 498 01.10.18 13:13 Сейчас в теме
(14) У СоздатьWSПрокси() есть параметр "ЗащищенноеСоединение". Возможно, если его корректно указать, то все и наладится.
16. gradi 5 01.10.18 13:20 Сейчас в теме
(15) Попробую такой вариант. Но подозреваю, что не сработает. WSСсылка создана с указанием адреса с https.
17. herfis 498 01.10.18 13:23 Сейчас в теме
(16) Тогда возникает законный вопрос - нафиг этот параметр нужен :)
20. Ditron 184 01.10.18 13:40 Сейчас в теме
(17)для создания WS ссылки программно, представь если адрес меняется (DNS), каждый раз в конфиг лезть и обновлять адрес )
19. Ditron 184 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 184 01.10.18 13:37 Сейчас в теме
В name space всегда будет http, это-же протокол, а приставка "s" указывает только на то, что соединение защищенное и имеет порт не 80 а 443 (если конечно не менять в настройках веб сервера), разница лишь в инициации подключения, веб-сервису пофиг на каком соединении у вас http! И если у вас внешний (не типовой) веб сервис используете WSОпределения программно, а то каждый раз конфигурацию менять...
adhocprog; gradi; +2 Ответить
21. herfis 498 01.10.18 13:51 Сейчас в теме
(18) Речь не про name space, а про address location
(20) Это была ирония. Потому что я почти уверен, что явное указание протокола для прокси исправит ситуацию.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот