Как получить PrivateKey из хранилища ключей Azure - PullRequest
0 голосов
/ 01 июня 2018

Я создаю API для подписи документов XML, поддерживаемый хранилищем ключей Azure (AKV).

У меня есть ассиметричный сертификат, импортированный в AKV, который хранится в виде [Ключ, Секрет и Сертификат].

Мне удалось подписать документ, но я думаю, что я не получил правильный ключ.

API Java XML Digital Signature нужен ключпару (private / public), чтобы получить некоторую информацию.

Я изменил провайдера, который нашел здесь , и теперь процесс подписи вызывается из AKV вместо javaреализация.

Дело в том, что когда я получаю ключ от AKV, только открытый ключ приходит.Закрытый ключ хранится как секрет, и у меня возникают проблемы, когда я пытаюсь преобразовать значение в экземпляр PrivateKey.

Как преобразовать значение SecretBundle вэкземпляр java.security.PrivateKey ?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 июня 2018

Ниже показано, как я преобразовал Секрет в файл сертификата.Возможно, вы сможете преобразовать это в 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 .Вы также можете найти некоторые подробности о экспортируемых и неэкспортируемых сертификатах в хранилище ключей и о том, как их можно использовать для подписи файла PDF .

Надеюсь, что это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...