簡體   English   中英

ASP.NET 內核中的證書綁定

[英]Certificate binding in ASP.NET Core

當我創建一個啟動 ASP.NET 核心項目並啟用 HTTPS 時,我得到一個“雙模式”應用程序,我可以作為自托管(通過控制台應用程序)或 Z5DA5ACF461B4EFB7E76EC86106 Express 運行。 localhost 證書被綁定(通過 netsh 可見)到應用程序將在 IIS Express 下偵聽的端口。 但是,在“自托管”模式下,它將偵聽端口 5001,而 netsh 中沒有證書出現。 自托管模式如何選擇合適的證書? 當需要將我的應用程序部署到我的服務器時,需要采取哪些步驟來確保它一切正常? 我是否只需調整 launchSettings.json 中的“applicationUrl”屬性(假設我已經安裝了我的證書)? 我是否需要使用 netsh 綁定它,如果不需要,為什么 netsh 需要在 launchSettings 不需要時唯一標識證書(通過指紋)?

我有一個站點證書,我已經通過 netsh 安裝並綁定到端口 5001(基本上我之前為 OWIN WebAPI 應用程序所做的),解決了路由和防火牆問題,以便我可以通過https://www.{my-domain}:5001引用我的存根站點https://www.{my-domain}:5001 當我嘗試通過我的站點 URL 瀏覽我的應用程序時,它確實登陸了我的應用程序頁面,但瀏覽器報告了一個無效的證書,因為該應用程序正在呈現開發 localhost 證書,而不是站點證書。 我錯過了什么?

根據這個答案找到了一個解決方案: https://stackoverflow.com/a/62847019/2487969

就我而言,我選擇使用重載,它允許應用程序將證書從商店中取出 select,因此它需要我安裝證書,但我不需要綁定到端口; 相反,我在 Program.cs 文件中進行了以下更改:

    // From this:
    webBuilder.UseStartup<Startup>();

    // To this:
    webBuilder.UseStartup<Startup>()
        .UseKestrel(o =>
        {
            o.Listen(IPAddress.Any, 5001, opt => { opt.UseHttps(StoreName.My, "{my-domain}", false, StoreLocation.LocalMachine); });
        });

請注意,它確實會發出有關地址被覆蓋的警告,但這只是噪音。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM