使用 SSL
本页由英文自动翻译。 阅读原文
在开发中使用 SSL 可能是必要的,尤其是在需要安全性的环境下,例如大多数 Web 开发场景。Sisk 基于 HttpListener 实现,而 HttpListener 本身不支持原生 HTTPS,只支持 HTTP。不过,仍有一些变通办法可以让你在 Sisk 中使用 SSL。下面介绍几种方式:
通过 Sisk.Cadente.CoreEngine #
- 可用平台:Linux、macOS、Windows
- 工作量:容易
可以在 Sisk 项目中使用实验性的 Cadente 引擎,而无需在计算机或项目中进行额外配置。你需要在项目中安装 Sisk.Cadente.CoreEngine 包,才能在 Sisk 服务器中使用 Cadente 服务器。
要配置 SSL,可以使用构建器的 UseSsl 和 UseEngine 方法:
using var http = HttpServer.CreateBuilder()
.UseEngine<CadenteHttpServerEngine>()
.UseSsl(CertificateHelper.CreateTrustedDevelopmentCertificate("localhost"))Note: this package is still in the experimental phase.
通过 Windows 上的 IIS #
- 可用平台:Windows
- 工作量:中等
如果你使用 Windows,可以通过 IIS 为你的 HTTP 服务器启用 SSL。为此,建议先阅读 此教程,尤其是当你的应用需要监听除 “localhost” 之外的主机时。
要实现此功能,需要通过 Windows 功能安装 IIS。IIS 对 Windows 和 Windows Server 用户免费提供。要在应用中配置 SSL,请准备好 SSL 证书,即使是自签名证书也可以。随后,你可以参考 在 IIS 7 或更高版本上设置 SSL 的方法。
通过 mitmproxy #
- 可用平台:Linux、macOS、Windows
- 工作量:容易
mitmproxy 是一种拦截代理工具,允许开发者和安全测试人员检查、修改和记录客户端(如网页浏览器)与服务器之间的 HTTP 与 HTTPS 流量。你可以使用 mitmdump 实用程序在客户端和 Sisk 应用之间启动一个反向 SSL 代理。
- 首先,在机器上安装 mitmproxy。
- 启动你的 Sisk 应用。此示例使用 8000 端口作为不安全的 HTTP 端口。
- 启动 mitmproxy 服务器,在安全端口 8001 上监听:
mitmdump --mode reverse:http://localhost:8000/ -p 8001这样就可以开始使用了!你可以通过 https://localhost:8001/ 访问你的应用。即使你的应用未运行,也可以启动 mitmdump。
另外,你也可以在项目中添加对 mitmproxy helper 的引用。这仍然要求在电脑上已安装 mitmproxy。
Sisk.SslProxy 包(已停用) #
小心
Sisk.SslProxy 包已在 NuGet 上停用并弃用。它已无法针对当前的 Cadente API 编译。请勿使用它:改为使用 Cadente 引擎 的原生 SSL 支持。