簡體   English   中英

如何從Azure Key Vault檢索私鑰

[英]How to retrieve a PrivateKey from Azure Key Vault

我正在構建一個由Azure Key Vault(AKV)支持的xml文檔簽名API。

我有一個導入到AKV中的不對稱證書,該證書存儲為[密鑰,秘密和證書]。

我已經成功簽署了文檔,但是我認為我沒有得到正確的鑰匙。

Java XML Digital Signature API需要一個密鑰對(私有/公共)來獲取一些信息。

我已經修改了在這里找到的提供程序,現在從AKV而不是java實現中調用了簽名過程。

關鍵是,當我從AKV獲得密鑰時,只有公共密鑰即將到來。 私鑰存儲為秘密,當我嘗試將值轉換為PrivateKey實例時遇到麻煩。

如何將SecretBundle值轉換為java.security.PrivateKey的實例?

提前致謝。

以下是我將Secret轉換為證書文件的方式。 您也許可以將其轉換為Java。

$kvSecret = Get-AzureKeyVaultSecret -VaultName 'VaultFromCode' -Name 'TestCertificate'
$kvSecretBytes = [System.Convert]::FromBase64String($kvSecret.SecretValueText)
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, 'test')
$pfxPath = 'C:\cert\test.pfx'
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)

您可以在我的Azure Key Vault中的管理證書后找到更多詳細信息。 您還可以在Key Vault中找到有關可導出和不可導出證書的一些詳細信息,以及如何使用它們對PDF文件進行簽名

希望能有所幫助

暫無
暫無

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

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