要將 ASP.NET Core 8 應用程序安裝到 IIS 10 並設定 SSL/TLS,請按照以下步驟進行:
1. 安裝 IIS 和必要的擴展
首先,確保已在 Windows 10 或 Windows Server 上安裝 IIS 及其必要的擴展:
- 打開 "控制面板" > "程序和功能" > "啟用或關閉 Windows 功能"。
- 確保已選中以下項目:
- Internet Information Services
- Web 管理工具
- World Wide Web 服務
- 應用開發功能(選中 ASP.NET 和其他需要的功能)
2. 安裝 ASP.NET Core Hosting Bundle
在目標機器上安裝 ASP.NET Core Hosting Bundle,這樣可以確保 IIS 可以運行 ASP.NET Core 應用程序。
下載 ASP.NET Core Hosting Bundle
3. 部署應用程序到 IIS
- 使用 Visual Studio 或命令行(
dotnet publish
)將 ASP.NET Core 應用程序發布到文件夾中。 - 在 IIS 中創建新的網站或應用程序:
- 打開 IIS 管理器。
- 右鍵單擊 "站點",選擇 "添加網站"。
- 設置網站名稱、物理路徑和端口號。
4. 配置網站使用 HTTPS
獲取和安裝 SSL 憑證
您可以使用以下選項之一獲取 SSL 憑證:
- 從受信任的憑證颁发机构(CA)購買 SSL 憑證。
- 使用 Let's Encrypt 免費獲取 SSL 憑證。
- 在測試環境中使用自簽名憑證。
將 SSL 憑證安裝到 IIS 伺服器上:
- 打開 "IIS 管理器"。
- 選擇伺服器節點,然後打開 "伺服器憑證"。
- 點擊右側操作窗格中的 "導入" 或 "創建自簽名憑證"(如果使用自簽名憑證)。
綁定 HTTPS
- 在 IIS 管理器中選擇您的網站。
- 在右側操作窗格中,點擊 "綁定"。
- 點擊 "添加",選擇 "https" 作為類型,然後選擇已安裝的 SSL 憑證。
5. 配置 ASP.NET Core 應用程序支持 HTTPS
在 Program.cs
中配置 Kestrel 以支持 HTTPS
在 Program.cs
文件中配置 Kestrel 以支持 HTTPS: csharp
csharp
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
6. 強制使用 HTTPS
在 ASP.NET Core 應用程序中強制使用 HTTPS,可以在 Startup.cs
文件中配置:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// 配置強制 HTTPS
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect;
options.HttpsPort = 443;
});
// 配置 HSTS
services.AddHsts(options =>
{
options.Preload = true;
options.IncludeSubDomains = true;
options.MaxAge = TimeSpan.FromDays(60);
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
7. 驗證設置
啟動 IIS,訪問網站以驗證 HTTPS 是否正確配置。打開瀏覽器並導航到 https://yourdomain.com
以確保 SSL/TLS 配置正確。
這些步驟應該可以幫助您在 IIS 10 中正確設置 ASP.NET Core 8 應用程序的 SSL/TLS。