Как добавить SSL в приложение .net, которое использует httplistener - оно не будет работать на IIS

Последние изменения, выделенные жирным шрифтом Я использую .netHttpListener класс, но я не буду работать на IIS и не использую ASP.net. этоВеб-сайт описывает, какой код на самом деле использовать для реализации SSL с asp.net иэтот сайт описывает, как настроить сертификаты (хотя я не уверен, работает ли он только для IIS или нет).

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

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

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

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

Редактировать:
Шаги, предпринятые до сих пор

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

Вопросы

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

Ответы на вопрос(6)

Ваш ответ на вопрос