ASP.NET Core配置 Kestrel部署HTTPS。現在大部分網站已經部署HTTPS,大家對於安全越來越重視。
今天簡單介紹一下ASP.NET Core 部署HTTPS,直接通過配置Kestrel。大家也可以通過前置Nginx來部署HTTPS。
下面直接進入正題。
新建一個ASP.NET Core Web Application 模板選擇空。
新建好項目添加引用 Microsoft.AspNetCore.Server.Kestrel.Https。
Install-Package Microsoft.AspNetCore.Server.Kestrel.Https
如果你的.NET Core SDK 還是1.0 ,那麼引用的時候加上版本號Install-Package Microsoft.AspNetCore.Server.Kestrel.Https -Version 1.0.0
通過OpenSSL 生成證書
必須先確保安裝OpenSSL。
首先自己創建根證書 root 自己做CA也就是發行者。
openssl genrsa -des3 -out root.key
然後按照提示輸入密碼
openssl req -new -key root.key -out root.csr
輸入剛才設置的密碼,然後填寫一些信息
然後創建一個10年期根證書 root.crt
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt
openssl genrsa -des3 -out server.key 2048openssl req -new -key server.key -out server.req
openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt
openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx
最終得到的server.pfx 就是可以用來在配置HTTPS。
將server.pfx 復制到項目根目錄
然後打開Program.cs 更改代碼如下:
public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel(option=> { option.UseHttps("server.pfx", "linezero"); }) .UseUrls("https://*:443") .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } }
然後選擇使用 Kestrel 運行。
打開浏覽器輸入 https://localhost/
由於證書是自己生成,顯示紅標也就是沒有得到驗證。
附測試用證書下載:server.pfx
如果你覺得本文對你有幫助,請點擊“推薦”,謝謝。