Как добавить SSL с чистым приложением, которое использует HttpListener - . Она * не * быть запущены на IIS

последние изменения в шрифтомЯ использую .net HttpListener класса, но я не на IIS и не использую ASP.net. Этот web сайт описывает, каким кодом фактического использования реализовать SSL с asp.net эта страница описывает, как установить сертификаты (хотя я не уверен, если это работает только для IIS или нет).

Когда я документацию класса, он описывает разные типы аутентификации (basic, digest, Windows и др.) - ни один из них относятся к SSL. Оно говорит, что если используется протокол HTTPS, необходимо установить сертификат сервера. Это будет одна строка значения свойства и HttpListener выясняет остальные?

короче, мне нужно знать, как установить сертификаты и инструкции по изменению кода для реализации SSL.

Хотя это не происходит, когда я пытаюсь получить доступ к HTTPS, я заметил ошибку в моем журнале Событий Системы - источника "Schannel" и содержимое сообщений:

фатальная ошибка при попыткедля доступа к серверу SSL, credentialзакрытый ключ. Возвращенный код ошибкикриптографического модуля0x80090016.

Редактировать:
Действия, предпринятые

  • Создана Рабочая HTTPListener в C#, которая работает для HTTP-соединений (напр. "http://localhost:8089/foldername/"
  • Создан сертификат, используя эта программа
  • Добавлен сертификат доверия с помощью certmgr.exe
  • Использовать Httpcfg.exe для прослушивания соединений SSL на test port (напр. 8090)
  • Добавлен порт 8080 к HTTPListener через listener.Prefixes.Add(https://localhost:8090/имя папки/");
  • протестированы клиента HTTP-соединения, например. (http://localhost:8089/foldername/") в браузере и получить правильный return
  • протестированы HTTPS-соединение клиента, например. (http://localhost:8090/foldername/") в браузере и получить "прервалась Передача Данных" (в Firefox)
  • отладка в visual studio показывает, что слушатель обратный вызов, который получает запросы никогда не получает удар, когда соединение по протоколу HTTPS начинается - я не вижу другого места, где я могла бы установить точку останова, чтобы поймать что-нибудь еще раньше.
  • netstat показывает, что слушает порты открыты как для HTTPS и HTTP. HTTPS-порт, перейдите к TIME_WAIT после попытки соединения.
  • скрипач и HTTPAnalyzer не поймал ни одного движения, я думаю, это не получить достаточно далеко в процесс, чтобы показать, до тех HTTP инструменты анализа

Вопросы

  • в Чем может быть проблема?
  • существует ли кусок .Net код мне не хватает (т.е. я предстоит сделать еще больше, в C# другие, чем просто добавить префикс для слушателя, который указывает на HTTPS, что я и сделал)
  • Иметь пропустил шаг настройки-то?
  • Что еще мог я сделать, чтобы анализировать проблему?
  • Это сообщение об ошибке в системном журнале Событий знак проблема? Если да, то как бы это исправить?

Найдено 5 ответов:

How do I add SSL to a .net application that uses httplistener - it will *not* be running on IIS

http://stackoverflow.com/questions/4004/how-do-i-add-ssl-to-a-net-application-that-uses-httplistener-it-will-not-be

Посмотреть решение →