HttpListener поддерживает SSL только для localhost?
Привет,
Я думаю, что многие люди знают и используют Прослушиватель httplistener[^] класс.
Насколько я вижу из заметки на MSDN он поддерживает https трафик:
If you create an HttpListener using https, you must select a Server Certificate for that listener. Otherwise, an HttpWebRequest query of this HttpListener will fail with an unexpected close of the connection.
Я добавил корневой сертификат к доверенному в localstorage и еще один сертификат к личному также в localstorage который подписан корневым сертификатом:
ROOT makecert.exe -sr localmachine -ss MY -a sha1 -n "CN=Root,O=DO_NOT_TRUST,OU=test purposes" -sky signature -pe -r "Root.cer" -sv "RootKey.pvk" Personal makecert.exe -sr localmachine -ss MY -a sha1 -n "CN=*.codeproject.com,O=DO_NOT_TRUST,OU=test purposes" -sky exchange -pe -ir localmachine -iv "RootKey.pvk" -ic "Root.cer"
Я привязал сертификат к порту вот так:
netsh http add sslcert ipport=0.0.0.0:8081 certhash="{hash}" appid={guid}
И все работает, но только для сайтов на localhost. Когда я пытаюсь открыть например https://codeproject.com. HttpListener "не слышит" запрос. Браузер пытается открыть веб-страницу и терпит неудачу с таймаутом.
Кстати, я знаю, что это называется атакой типа man-in-the-middle, но это только для тестовых целей, и, к сожалению, я не могу использовать Fiddler, который также использует эту технику.
По традиции мой вопрос не простой, я считаю, что здесь нет "свободного рейтинга" ребят, извините :) но если вы сможете мне помочь, это будет здорово.
Еще одно замечание - я прочитал почти все статьи об этом и все примеры для localhost там. Так что если вы собираетесь предоставить мне ссылку на статью пожалуйста проверьте это может быть этот пример также для localhost ;)
И еще одно - возможно, вашим предложением будет использование TcpListner или что-то в этом роде. На данный момент я не хочу менять логику, я изменю логику, если это только решение.
Большое спасибо. Тимур.