Как я могу сделать HttpListener для прослушивания на 443 на Mac OS? - PullRequest
0 голосов
/ 29 января 2019

Я устанавливаю простой сервер на основе HttpListener в ядре .net, который должен работать на MacOS.Прекрасно работает на http, но мне нужно, чтобы он работал на https (порт 443. Пробовал настраиваемый порт, но все равно безуспешно)

В Windows работает с «netsh add iplisten» и связывает сертификат с «netsh».добавить sslcert ".И он отлично работает как для http, так и для https.

В Mac OS, однако, первое, что я обнаружил, это настроить псевдоним для localhost «ifconfig lo0 alias 127.0.0.9 up», чтобы мне было разрешено начатьhttplistener.

Это сработало, и всякий раз, когда я делаю HTTP-запрос на 127.0.0.9, я получаю ответ, который жестко запрограммирован в браузере.

Https по-прежнему не работает.Поэтому я попытался связать сертификат.Я использовал openssl для создания сертификата => получил сертификат .p12 с собственной подписью.Использовал "httpcfg -add -port 443 -p12 server.p12 -pwd mypassword". Это сработало, как я мог видеть, в файлах ~ ~.1009 *

Однако, если я перехожу на https://127.0.0.9, я получаю сообщение об ошибке сброса соединения в браузере.

Я понятия не имею, что еще попробовать, и я не могу найти ответ,Кто-нибудь пытался сделать это на Mac OS?

        var ipAddress = "127.0.0.9";
        var httpListener = new HttpListener();

        var httpPrefix = string.Format("http://{0}/", ipAddress);
        var httpsPrefix = string.Format("https://{0}/", ipAddress);

        httpListener.Prefixes.Add(httpPrefix);
        httpListener.Prefixes.Add(httpsPrefix);

        httpListener.Start();
        WaitForNewRequest(httpListener);

В методе «WaitForNewRequest (httpListener)» я просто пишу жестко запрограммированный ответ «hello world» и жду следующего запроса.Ничего сложного.

Спасибо!

1 Ответ

0 голосов
/ 24 июня 2019

Порты ниже 1024 являются привилегированными, вам нужно запустить приложение как root, чтобы открыть их.

Если вам нужно использовать 443 в работе, я настоятельно рекомендую использовать apache илиnginx для прослушивания порта SSL и прокси трафика к вашему .net коду.

...