Skip to content

Instantly share code, notes, and snippets.

@jlucaspains
Created November 23, 2022 22:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jlucaspains/3956f60f0d569c32d43f8a0a5628ab8b to your computer and use it in GitHub Desktop.
Save jlucaspains/3956f60f0d569c32d43f8a0a5628ab8b to your computer and use it in GitHub Desktop.
Copy a certificate from one Azure key vault to another
$CertName = 'mycert'
$SrcVault = 'kv-cert-issuer-001'
$DstVault = 'kv-cert-consumer-001'
$secret = Get-AzKeyVaultSecret -VaultName $SrcVault -Name $CertName
$secretValueText = '';
$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secret.SecretValue)
try {
$secretValueText = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr)
}
finally {
[System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}
$secretByte = [Convert]::FromBase64String($secretValueText)
$x509Cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($secretByte, "", "Exportable,PersistKeySet")
Import-AzKeyVaultCertificate -VaultName $DstVault -Name $CertName -CertificateCollection $x509Cert
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment