Scripts/CreateKeyVaultAndCertificateForServiceFabric.ps1 (30 lines of code) (raw):
Param(
[string] [Parameter(Mandatory=$true)] $SubscriptionId,
[string] [Parameter(Mandatory=$true)] $Location,
[string] [Parameter(Mandatory=$true)] $ResourceGroup,
[string] [Parameter(Mandatory=$true)] $VaultName,
[string] [Parameter(Mandatory=$true)] $CertificateName,
[string] [Parameter(Mandatory=$true)] $CommonName
)
Set-StrictMode -Version 3
function Check-Session () {
$Error.Clear()
#if context already exist
Get-AzureRmContext -ErrorAction Continue
foreach ($eacherror in $Error) {
if ($eacherror.Exception.ToString() -like "*Run Login-AzureRmAccount to login.*") {
Login-AzureRmAccount
}
}
$Error.Clear();
}
$ErrorActionPreference = "Stop"
Check-Session
Select-AzureRmSubscription -SubscriptionId $subscriptionId -ErrorAction Stop
New-AzureRmResourceGroup -Name $ResourceGroup -Location $location -Force
if(!(Get-AzureRmResource -ResourceName $VaultName -ResourceGroupName $ResourceGroup)) {
New-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $ResourceGroup -Location $Location -EnabledForDeployment
}
$policy = New-AzureKeyVaultCertificatePolicy -DnsName $CommonName -IssuerName Self -ValidityInMonths 12
Add-AzureKeyVaultCertificate -VaultName $VaultName -Name $CertificateName -CertificatePolicy $policy
Write-Host "operation complete"