Создание WCF прокси от ненадежных SSL конечной
мне нужно генерировать WCF прокси для службы выставленному нашим клиентом. Служба закрыта довольно жестко, поэтому это сложно. Кроме того, я новичок в WCF, поэтому мне может не хватать чего-то очевидного ...
Клиент только открыл свой брандмауэр на нашем производственном сервере - так что я не могу сгенерировать прокси из Visual Studio on моя машина dev. Кроме того, сервис распространяется только через HTTPS. И это требует от нас аутентификации с использованием сертификата клиента ...
Я надеялся запустить svcutil в окне производства, чтобы сгенерировать файлы .cs, а затем скопировать файлы локально. Но svcutil отказывается запускаться, потому что клиент использует самозаверяющий сертификат. Это дает мне следующее сообщение об ошибке:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. The remote certificate is invalid according to the validation procedure.
Я попытался добавить сертификат сервиса в качестве доверенного корневого сертификата, но это не работает. В оснастке MMC сертификатов я получаю: «У Windows недостаточно информации для проверки сертификата».
Есть ли способ обойти проверку безопасности, которую выполняет svcutil?
Я могу успешно перейти к WSDL из IE, когда я перешел на рабочий сервер. Мне просто нужно нажать «продолжить этот сайт (не рекомендуется)». Я также должен выбрать установленный клиентский сертификат, который отлично работает. Затем я могу загрузить файлы WSDL и XSD вручную через IE. Таким образом, другой альтернативой может быть создание прокси-сервера WCF из локальных копий WSDL и XSD вместо того, чтобы запускать svcutil в отношении прямой службы. Но я не знаю, как это сделать.
Я попытался разместить статические файлы WSDL и XSD на другом веб-узле, который мы размещаем, и изменить атрибуты xs: import schemaLocation = "..."/>, чтобы указать на новый сайт. Но когда я побежал SvcUtil против этого сайта, я получил кучу ошибок по поводу заявлений дублирующих типа - например .:
Error: There was a validation error on a schema generated during export: Source: Line: 1 Column: 1415 Validation Error: The complexType ' http://[domain-name]/Promotions/2009-02-17:InsertReferralPromo_Response ' has already been declared.
мне не хватает какой-то очевидный способ сделать это? Или мы просто требуем, чтобы клиент ослабил свою безопасность? :)
Спасибо за любую помощь вы можете дать мне ...
Ричарду
Ваша попытка сохранить сертификат как надежный сертификат - это будет единственный способ, с помощью которого вы сможете правильно генерировать прокси. –