Asp.net Core Kestrel 免費實現https


0、概述

先了解下https是個啥:  https://www.bilibili.com/video/BV1j7411H7vV

so!只要給我們的web服務器配置一個證書就行了,證書可以買,也可以用免費的Let's Encrypt,此證書提供商是多個牛X大公司為了推進全球https化搞出來的,所以不用擔心免費的會有啥問題。唯一的問題是90天有效期,所以你得提前免費續簽,當然有辦法容易的實現自動續簽。
為了實現自動化的證書申請、發放、續簽、刪除.....各種證書相關的功能,所以Let's Encrypt提出了個ACME協議,不同編程語言都可以實現這個協議來完成這些工作。本文要講的內容就是這種方式。某只大牛在github上開源了一個庫,這個庫實現了前面說的這個什么協議,實現了自動申請證書,自動續簽、自動與asp.net core內置Kestrel集成。僅僅需要幾行配置。

asp.net core 有多種發布模式

 

這種方式需要給IIS或Nginx..配置證書,其中IIS首選用win-acme,這個工具也實現上面說的ACME協議,使用它可以很容易在IIS中安裝Let's Encrypt證書,並實現自動續簽


 

我現在用的這種方式,服務器上啥都不裝,直接一個發布好的asp.net core程序(一個文件夾)丟到服務器上,啟動里面的.exe就可以運行。主要是因為簡單,方便移動。

在這種方式下,如果能在應用程序內部實現ACME協議自動申請證書然后配置給Kestrel,並實現自動續簽,就完美了。然后github上搜出倆比較成熟的:ACMESharpCore LetsEncrypt ,我使用的后面這種方式。我只是用的windowserver發布的,應該支持跨平台的,因為它只是一個庫

 

1、創建項目

首先創建一個asp.net core 3.1的程序(mvc razorPages都行)

2、添加包引用

然后添加nuget包 paket add McMaster.AspNetCore.LetsEncrypt --version 0.3.0 

3、啟動配置

然后在Startup中配置

1 using Microsoft.Extensions.DependencyInjection;
2 
3 public class Startup
4 {
5     public void ConfigureServices(IServiceCollection services)
6     {
7         services.AddLetsEncrypt();
8     }
9 }

下面是配置文件

 1 // appsettings.json
 2 {
 3     "LetsEncrypt": {
 4         // Set this to automatically accept Let's Encrypt's terms of service.
 5         // If you don't set this in config, you will need to press "y" whenever the application starts
 6         "AcceptTermsOfService": true,
 7 
 8         // 申請證書要綁定的域名,闊以多個,不能寫端口哦
 9         "DomainNames": [ "example.com", "www.example.com" ],
10 
11         // You must specify an email address to register with letsencrypt.org
12         "EmailAddress": "it-admin@example.com"
13     },
14     "urls":"http://*;https://*"
15 }

 

4、發布

 

根據你的方式選,我這里選擇獨立模式,發布后的程序里就自動包含了.net core運行時,所以包比較大,但是不需要服務器安裝.net core,發布好的包放哪都能直接運行。
目標運行時看着選,也可以發布層跨平台的通用包,詳細的看官網吧。

5、運行

找到那個xxx.exe 直接啟動就可以了,內部那個庫會自動去申請證書並設置到Kestrel上,申請時會驗證域名,我估計就是簡單訪問下這個域名看能不能正常訪問,所以一定要保證你配置的域名都能正常訪問。如果一切正常就可以通過https訪問了。估計到期前會自動續簽證書,得3個月后才能驗證。

 

6、最后

做個備忘,回頭看這種方式真TM簡單,引用庫、配置、發布。文件夾復制到哪都能運行,還自帶https。比如 做點微信小程序開發 美滋滋


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM