Вызов SSL веб-службы завершается ошибкой при вызове из службы Windows - PullRequest
0 голосов
/ 11 февраля 2010

Иметь вызов веб-службы из службы Windows. Сервис находится за сертификатом SSL. Сертификат был зарегистрирован в доверенном корне (пароль предоставлен провайдером).

Проблема в том, что с машины разработки все работает отлично, но после развертывания на рабочем сервере мы продолжаем получать ошибку 403.

Можно ли перейти к службе на сервере, но получить всплывающее окно с сертификатом?

Нет прокси, брандмауэр в порядке, прямое соединение отсутствует.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2010

Если вы получаете 403, это, скорее всего, означает, что сервер ожидает какие-то учетные данные, а если в браузере появляется всплывающее окно с сертификатом, это, скорее всего, означает, что эти учетные данные являются клиентским сертификатом. (403 также может означать, что сервер не любит вас по какой-то другой причине, например по IP-адресу, но, учитывая обстоятельства, это кажется менее вероятным.)

Предполагая, что службе требуется сертификат клиента, вам необходимо явно связать сертификат клиента с вызовом либо через код, либо в файле конфигурации. (Как это сделать, зависит от того, используете ли вы WCF или классические веб-службы Web Reference.)

Похоже, что сертификат, который вы дали провайдеру, может быть клиентским сертификатом, который ищет служба. Если это так, то нужно будет перейти в «Мое» хранилище для LocalMachine, а не в «Надежные корни» (поскольку сертификат клиента не будет корневым сертификатом), и вам нужно будет настроить свой код для использования его в запросе. .

1 голос
/ 25 февраля 2010

Вам также нужно добавить

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

если вы получаете сообщение "не можете создать доверительные отношения", дерьмо!

...