簡體   English   中英

將上傳到 Azure 門戶的 TLS 證書加載到 Linux 應用服務容器中

[英]Loading a TLS certificate uploaded to the Azure portal into a Linux app service container

一段時間以來,我們在 Azure 應用服務上運行了一個 ASP.NET Core Web 應用。 作為升級到 netcoreapp2.2 的一部分,我們決定對它進行 Dockerize 並在 Linux 容器上運行它,仍然在應用程序服務中。

此應用程序所做的一件事是加載 TLS 證書以進行令牌簽名。 以前,此證書已上傳到應用程序服務,應用程序將通過指紋在new X509Store(StoreName.My, StoreLocation.CurrentUser)找到它。 這可以通過添加配置設置WEBSITE_LOAD_CERTIFICATES並將值設置為證書的指紋來啟用。

對 Linux 容器嘗試了相同的方法后,我們發現證書存儲中不存在該證書。

我從今年早些時候在 Github 上發現了這個問題,這表明它在 Linux 上是不可能的。 現在還是這樣嗎? 如果是這樣,有沒有人知道不涉及將證書本身存儲在圖像中的解決方法?

該功能現在適用於 Linux。

在 Linux 應用程序中加載證書

WEBSITE_LOAD_CERTIFICATES 應用程序設置使您的 Linux 托管應用程序(包括自定義容器應用程序)可以作為文件訪問指定的證書。 這些文件位於以下目錄下:

  • 私有證書 - /var/ssl/private(.p12 文件)
  • 公共證書 - /var/ssl/certs(.der 文件)

證書文件名是證書指紋。 以下 C# 代碼顯示了如何在 Linux 應用程序中加載公共證書。

 using System; using System.Security.Cryptography.X509Certificates; var bytes = System.IO.File.ReadAllBytes("/var/ssl/certs/<thumbprint>.der"); var cert = new X509Certificate2(bytes);

暫無
暫無

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

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