本机上搭一个HTTPS网站用什么工具?.NET self host支持吗?
本机上搭建 HTTPS 网站可以使用 https-localhost、mkcert 等工具,.NET self host 是支持 HTTPS 的。具体介绍如下:
- https-localhost1:这是一个轻量级工具,基于 Node.js 构建,依赖 Express 框架,利用 mkcert 生成并安装本地 CA 根证书来实现 HTTPS 支持。它适用于 MacOS、Linux 和 Windows 系统,可在 Chrome 和 Firefox 浏览器中正常工作,无需复杂配置,能通过环境变量自定义端口和主机名,还可与其他 Web 框架集成。
- mkcert4:是一个用于制作本地信任的开发证书的工具,不需要复杂配置。它能在系统根存储中自动创建并安装本地 CA,并生成本地信任的证书。生成证书后,可将其用于支持 HTTPS 的 Web 服务器配置中,如配合 Nginx 等服务器软件搭建本地 HTTPS 网站。
- Let’s Encrypt3:是一个非盈利的免费 CA,提供免费 HTTPS 认证服务。可通过安装 Certbot 工具来配置 HTTPS 证书,适用于多种操作系统,能基于 cron 实现定时更新证书,从而实现永久免费使用,不过通常更适合有公网 IP 和域名的场景,在本地搭建时若涉及外网访问等情况可考虑使用。
.NET self host 支持 HTTPS。以ASP.NET Core 为例,可通过以下步骤启用 HTTPS:
- 获取证书:可以从证书颁发机构购买证书,也可以使用自签名证书。使用.NET Core SDK 中的工具可生成自签名证书,打开终端窗口,运行命令
dotnet dev-certs https --trust
,该命令会生成自签名证书并添加到本机受信任的根证书颁发机构存储中。还可使用命令dotnet dev-certs https -ep %user profile%\certs\aspnet app.pfx -p password
将证书导出为.pfx 文件。 - 配置 Kestrel 使用 HTTPS:在 Startup.cs 文件中,向 ConfigureServices 方法添加代码
services.AddHttpsRedirection(options => {options.HttpsPort = 443;})
,在 Configure 方法中添加代码app.UseHttpsRedirection()
,以将所有 HTTP 流量重定向到 HTTPS。 - 指定证书路径:在 appsettings.json 文件中指定证书路径,如添加代码
"url": "https://localhost:5001", "path": "cert.pfx"
。 - 使用 HTTPS 启动应用程序:在终端中使用命令
dotnet run --urls "https://localhost:5001"
启动应用程序。