Sisk

Работа с SSL

Эта страница переведена с английского автоматически. Читать оригинал

Работа с SSL в процессе разработки может быть необходима при работе в контекстах, требующих безопасности, таких как большинство сценариев веб‑разработки. Sisk работает поверх HttpListener, который не поддерживает нативный HTTPS, только HTTP. Тем не менее, существуют обходные пути, позволяющие работать с SSL в Sisk. См. ниже:

Через Sisk.Cadente.CoreEngine #

  • Доступно на: Linux, macOS, Windows
  • Сложность: легко

Можно использовать экспериментальный движок Cadente в проектах Sisk, не требуя дополнительной настройки на компьютере или в проекте. Вам потребуется установить пакет Sisk.Cadente.CoreEngine в ваш проект, чтобы иметь возможность использовать сервер Cadente в сервере Sisk.

Для настройки SSL вы можете использовать методы UseSsl и UseEngine билдера:

C#
using var http = HttpServer.CreateBuilder()
    .UseEngine<CadenteHttpServerEngine>()
    .UseSsl(CertificateHelper.CreateTrustedDevelopmentCertificate("localhost"))

Примечание: этот пакет всё ещё находится в экспериментальной фазе.

Через IIS в Windows #

  • Доступно на: Windows
  • Сложность: средняя

Если вы используете Windows, вы можете воспользоваться IIS для включения SSL на вашем HTTP‑сервере. Чтобы это работало, рекомендуется предварительно пройти этот учебник, если вы хотите, чтобы ваше приложение слушало хост, отличный от «localhost».

Для этого необходимо установить IIS через компоненты Windows. IIS доступен бесплатно пользователям Windows и Windows Server. Чтобы настроить SSL в вашем приложении, подготовьте SSL‑сертификат, даже если он самоподписан. Далее вы можете посмотреть как настроить SSL в IIS 7 и выше.

Через mitmproxy #

  • Доступно на: Linux, macOS, Windows
  • Сложность: легко

mitmproxy — это инструмент перехватывающего прокси, позволяющий разработчикам и специалистам по безопасности инспектировать, изменять и записывать HTTP и HTTPS трафик между клиентом (например, веб‑браузером) и сервером. Вы можете использовать утилиту mitmdump для запуска обратного SSL‑прокси между вашим клиентом и приложением Sisk.

  1. Сначала установите mitmproxy на ваш компьютер.
  2. Запустите ваше приложение Sisk. Для этого примера будем использовать порт 8000 как небезопасный HTTP‑порт.
  3. Запустите сервер mitmproxy, чтобы он слушал защищённый порт 8001:
Shell
mitmdump --mode reverse:http://localhost:8000/ -p 8001

И всё готово! Вы уже можете получить доступ к вашему приложению по адресу https://localhost:8001/. Ваше приложение не обязано быть запущено, чтобы вы могли запустить mitmdump.

В качестве альтернативы вы можете добавить ссылку на mitmproxy helper в ваш проект. Это всё равно требует, чтобы mitmproxy был установлен на вашем компьютере.

Через пакет Sisk.SslProxy #

  • Доступно на: Linux, macOS, Windows
  • Сложность: легко

Важно

Пакет Sisk.SslProxy устарел в пользу пакета Sisk.Cadente.CoreEngine и более не будет поддерживаться.

Пакет Sisk.SslProxy — простой способ включить SSL в вашем приложении Sisk. Однако это крайне экспериментальный пакет. Работа с ним может быть нестабильной, но вы можете стать частью небольшого процента людей, которые помогут сделать этот пакет пригодным и стабильным. Чтобы начать, вы можете установить пакет Sisk.SslProxy с помощью:

Shell
dotnet add package Sisk.SslProxy

Примечание

Необходимо включить опцию «Include prerelease» в менеджере пакетов Visual Studio, чтобы установить Sisk.SslProxy.

Опять же, это экспериментальный проект, так что даже не думайте о его использовании в продакшене.

В данный момент Sisk.SslProxy может обрабатывать большинство функций HTTP/1.1, включая HTTP Continue, Chunked-Encoding, WebSockets и SSE. Подробнее о SslProxy читайте здесь.

Sisk распространяется с открытым исходным кодом по лицензии MIT.

Начните вводить, чтобы искать по документации и справочнику API.