簡體   English   中英

Azure - Constructing X509Certificate2 from base64 in Azure Function results in error: The specified network password is not correct

[英]Azure - Constructing X509Certificate2 from base64 in Azure Function results in error: The specified network password is not correct

我正在嘗試創建一個 Azure Function ,它將調用一個 SOAP ZDB97423871408CA8DE634A7CACE1 使用的證書。 我有一個 .PFX 證書(另存為 base64)和匹配的密碼。 兩者都作為機密保存在 Azure Key Vault 中,並且我驗證它們可以正常檢索。

在我的 Azure Function (.NET Core 3.1) 中,我正在使用以下構造函數創建 X509Certificate2 object:

certificate = new X509Certificate2(certBytes, pass, X509KeyStorageFlags.MachineKeySet);

此處使用的 X509KeyStorageFlags 是由此處其他幾個已回答的問題提出的。

此構造函數的結果始終是以下錯誤: The specified network password is not correct.

我嘗試在本地執行相同的操作,並且此處證書已正確加載,我可以獲得有關頒發者等的信息。

其他存儲標志,如 MachineKeySet + PersistKeySet + Exportable 沒有任何區別,並且將 PFX 加載為 base64 而是作為文件會給出相同的錯誤。

有誰知道為什么此代碼在 Azure Function 中的行為與在本地運行它不同?

Azure 函數沒有加載用戶配置文件,因此無處保存私鑰。 或者,僅MachineKeySet可能是您沒有管理員權限,因此您無法創建私鑰文件......並且不知何故該錯誤被誤解了。

您可能對EphemeralKeySet標志感到幸運,因為它表示“不要將密鑰保存到磁盤”,這應該可以避免這個問題。 如果還不行,試試EphemeralKeySet | MachineKeySet EphemeralKeySet | MachineKeySet ,這可能會避免“沒有配置文件”以及缺少權限(因為它實際上從未嘗試創建文件)。

可以通過null獲取密碼。 使用 Key Vault 證書,我發現它可以作為 X509Certificate2 對象加載,至少在自簽名時是這樣。

暫無
暫無

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

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