2016-08-08 23 views
3

私は紺碧からワイルドカード証明書を購入しました。それは今、キーボルトに座っている。同じドメインの他のアプリケーションをホストする他のサーバーにアップロードする必要があります。 Azureポータル内の任意の場所にある.pfxファイルとして証明書をエクスポートするオプションはありません。 助けてください。輸出紺碧のSSL証明書

+0

他のサーバーはAzureですか? Scott Simms氏が投稿したことから、AzureのWebアプリケーション内でのみ証明書を再利用できるように思えます。 Azure以外のものではなく、Azure IaaS VMの場合は可能ですが、それは簡単ではありません。 –

+0

私もこの鍵をエクスポートしようとしていますが、これはAzureアプリケーションサービスでのみ可能です。あなたはそれを作ることができましたか? – sas

+0

あなたは紺碧のウェブアプリにアップロードされた証明書を使用して.cert' 'エクスポートすることができますが、' .pfx'をエクスポートすることはできません。 [AzureのWebアプリケーションからエクスポートSSL証明書](http://www.reza-aghaei.com/export-ssl-certificate-from-azure-web: 'エクスポート.cert'、この記事を見てみましょうする方法を確認するには-app /) –

答えて

4

あなたはPowerShellを使用してAzureのアプリケーションサービスの証明書のローカルPFXのコピーを作成することができます。

は、以下の変数から適切な値を提供し、copyasc.ps1としてスクリプトを保存します。

変数:

$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" 

スクリプトを実行するためのPowerShellコンソールで次のコマンドを入力します。

Powershell –ExecutionPolicy Bypass 
.\copyasc.ps1 

あなたはアズールの詳細を見つけることができますAppサービスチームブログCreating a local PFX copy of App Service Certificate

あなたはAzureのアプリケーションサービスのエコシステムの外で使用したいアプリケーションサービスの証明書を持っている場合は、このを試してみて、私たちはそれが行く方法を知ってみましょう。問題が発生した場合は、Stackoverflowまたはに連絡してください