Самостоятельная служба WCF HTTPS не работает («сброшено соединение с сервером») - PullRequest
5 голосов
/ 05 октября 2009

У меня есть служба WCF REST Self-Hosted (Console App) со следующей привязкой:

  • WebMessageEncodingBindingElement
  • HttpsTransportBindingElement (ManualAddressing = true, KeepAliveEnabled = true, AllowCookies = false, HostNameComparisonMode = Exact)

Это доступно через URL HTTPS ("https://mylaptop/myendpoint")

У меня есть самозаверяющий сертификат, выданный «mylaptop», который я назначаю с помощью myServiceHost.Credentials.ServiceCertificate.SetCertificate. Сертификат успешно добавлен, и ServiceHost успешно открывается (без исключений). Если я наберу «netsh http show servicestate», я увижу успешную регистрацию на https://mylaptop/myendpoint с HTTP.SYS

Однако, когда я запускаю GET для конечной точки, он не работает. Похоже, что сокет отбрасывается даже до того, как получен правильный HTTP-ответ. (FireFox говорит, что «соединение с сервером было сброшено», IE говорит, что «не может отобразить веб-страницу», и если я делаю запрос через Fiddler, он говорит, что «соединение было принудительно закрыто удаленным хостом»).

Все работает нормально, когда я использую HTTP вместо HTTPS.

Есть идеи, что может быть не так в случае HTTPS?

Ответы [ 2 ]

6 голосов
/ 06 октября 2009

Или используйте HttpCfgGui - более дружественный интерфейс для настройки сертификатов сервера с HTTP.SYS. Это необходимо установить на всех моих серверах, которые используют HTTP с WCF.

6 голосов
/ 06 октября 2009

Возможно, вам необходимо использовать httpcfg.exe, чтобы правильно зарезервировать конечную точку с HTTP.SYS с настроенным сертификатом X.509 для SSL. Шаги, чтобы сделать это задокументированы здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...