2016-08-08 37 views
3

Ich kaufte ein Wildcard-Zertifikat von Azurblau. Es befindet sich jetzt im Key Vault. Ich muss es auf unseren anderen Server hochladen, der eine unserer anderen Anwendungen für die gleiche Domain hostet. Es gibt keine Option zum Exportieren des Zertifikats als PFX-Datei an eine beliebige Stelle im azure-Portal. Bitte helfen.export azurblau ssl zertifikat

+0

mit. Ist Ihr anderer Server in Azure? Von dem, was Scott Simms gepostet hat, klingt es so, als könnte man das Zertifikat NUR innerhalb von Web-Apps in Azure wiederverwenden. Es ist nicht für Dinge außerhalb von Azure und es kann vielleicht für Azure IaaS VMs getan werden, aber es ist nicht einfach. –

+0

Ich versuche auch, diesen Schlüssel zu exportieren, aber scheint nur mit azure App Service möglich zu sein. Hattest du es geschafft? – sas

+0

Sie können '.cert' mit einem Zertifikat exportieren, das Sie in die azure Web App hochgeladen haben, aber' .pfx' nicht exportieren können. Um zu sehen, wie man ".cert" exportiert, werfen Sie einen Blick auf diesen Beitrag: [SSL-Zertifikat von Azure Web App exportieren] (http://www.reza-aghaei.com/export-ssl-certificate-from-azure-web -app /) –

Antwort

4

Sie können eine lokale PFX-Kopie des Azure App Service-Zertifikats mithilfe von PowerShell erstellen.

Stellen Sie geeignete Werte aus den folgenden Variablen bereit und speichern Sie das Skript unter copyasc.ps1.

Variablen:

$appServiceCertificateName = "ascdemo" 
$resourceGroupName = "ascdemorg" 
$azureLoginEmailId = "[email protected]" 
$subscriptionId = "fb2c25dc-6bab-45c4-8cc9-cece7c42a95a" 

copyasc.ps1:

$appServiceCertificateName = "" 
$resourceGroupName = "" 
$azureLoginEmailId = "" 
$subscriptionId = "" 

Login-AzureRmAccount 
Set-AzureRmContext -SubscriptionId $subscriptionId 

$ascResource = Get-AzureRmResource -ResourceName $appServiceCertificateName -ResourceGroupName $resourceGroupName -ResourceType "Microsoft.CertificateRegistration/certificateOrders" -ApiVersion "2015-08-01" 
$keyVaultId = "" 
$keyVaultSecretName = "" 

$certificateProperties=Get-Member -InputObject $ascResource.Properties.certificates[0] -MemberType NoteProperty 
$certificateName = $certificateProperties[0].Name 
$keyVaultId = $ascResource.Properties.certificates[0].$certificateName.KeyVaultId 
$keyVaultSecretName = $ascResource.Properties.certificates[0].$certificateName.KeyVaultSecretName 

$keyVaultIdParts = $keyVaultId.Split("/") 
$keyVaultName = $keyVaultIdParts[$keyVaultIdParts.Length - 1] 
$keyVaultResourceGroupName = $keyVaultIdParts[$keyVaultIdParts.Length - 5] 
Set-AzureRmKeyVaultAccessPolicy -ResourceGroupName $keyVaultResourceGroupName -VaultName $keyVaultName -UserPrincipalName $azureLoginEmailId -PermissionsToSecrets get 
$secret = Get-AzureKeyVaultSecret -VaultName $keyVaultName -Name $keyVaultSecretName 
$pfxCertObject=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList @([Convert]::FromBase64String($secret.SecretValueText),"", [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable) 
$pfxPassword = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 50 | % {[char]$_}) 
$currentDirectory = (Get-Location -PSProvider FileSystem).ProviderPath 
[Environment]::CurrentDirectory = (Get-Location -PSProvider FileSystem).ProviderPath 
[io.file]::WriteAllBytes(".\appservicecertificate.pfx", $pfxCertObject.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $pfxPassword)) 
Write-Host "Created an App Service Certificate copy at: $currentDirectory\appservicecertificate.pfx" 
Write-Warning "For security reasons, do not store the PFX password. Use it directly from the console as required." 
Write-Host "PFX password: $pfxPassword" 

Geben Sie die folgenden Befehle in Powershell-Konsole das Skript auszuführen:

Powershell –ExecutionPolicy Bypass 
.\copyasc.ps1 

Sie weitere Details zu den Azure finden App-Service-Team-Blog Creating a local PFX copy of App Service Certificate

Wenn Sie ein App Service-Zertifikat haben, das Sie außerhalb des Azure App Service-Ökosystems verwenden möchten, probieren Sie es aus und teilen Sie uns mit, wie es läuft. Wenn Probleme auftreten, teilen Sie uns dies bitte im Stackoverflow oder auf der Azure App Service forum.