三種方法爲 ASP.NET Core 對外服務添加 https 支持(kestrel / frp / nginx)

雖然使用 Visual Studio 創建 ASP.NET Core 程序的時候可以選擇是否添加 https 支持,不過這種方式只添加了 localhost 的證書,只有本地訪問時瀏覽器纔會承認。真正對外公開服務的時候這樣是絕對沒法兒提供 https 服務的。

本文介紹使用三種不同的方式添加 https 的支持,三種方法各有優劣,本文會進行比較並給出不同的適用場景。你自己選擇就好。


你需要有一個證書

如果你還沒有證書,可以考慮去 https://freessl.org/ 免費申請一個。可以爲泛域名申請 3 個月有效期的證書(Let’s Encrypt),或者爲單域名申請 6 個月有效期的證書(buypass)。

如果不知道如何操作,可以參考我的另一篇博客:

你可以在以上博客中得到四種不同格式的證書(Nginx/Apache/IIS/Tomcat),下面的方法中每一種方法會使用到其中的一種證書。

方法

實際上,只要是一個 Web 服務器就可以爲 ASP.NET Core 服務程序提供 https 的支持,不過本文只會介紹下面這三種方法:

  • Kestrel
    • 這是 ASP.NET Core 自帶提供的 Web 服務器
  • Frp
    • 這是一個開源即將收費的反向代理服務
  • Nginx
    • 這是非常強大的 Web 服務器,同時也是強大的反向代理服務器

Kestrel 最簡單,幾句代碼即可配完。Frp 相對來說也很簡單。而 Nginx 非常強大,幾乎適用於各種 Web 服務場景。

Nginx 支持 http2,Kestrel 的 Windows 和 Linux 版本支持 http2。


發現寫成一篇博客會模糊這些方法之間的步驟,所以我將它們分別寫成了幾篇博客:


我的博客會首發於 https://blog.walterlv.com/,而 CSDN 會從其中精選發佈,但是一旦發佈了就很少更新。

如果在博客看到有任何不懂的內容,歡迎交流。我搭建了 dotnet 職業技術學院 歡迎大家加入。

知識共享許可協議

本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名呂毅(包含鏈接:https://walterlv.blog.csdn.net/),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章