Purpose:
How to create a Private Key, CSR and Import Certificate on Microsoft Azure KeyVault (Cloud HSM)
Requirements
1. You must have an active
Microsoft Azure account.
2. You must have selected either the Free or HSM (paid) subscription option. These steps will work for either Microsoft Azure account type.
3. Microsoft Azure PowerShell must be installed. You can download it
here
.
The solution is in three parts:
1) Login and Create a Resource Group
2) Creating a Private Key and Certificate Signing Request (CSR)
3) Importing the Public Signed Certificate to Microsoft Azure KeyVault
Part 1 of 3: Login and Create a Resource Group
1. Launch Microsoft Azure PowerShell.
2. Log in to your Microsoft Azure account by typing:
Login-AzureRmAccount
You will be prompted to enter your credentials to log in to your account. Once you login successfully you will see something like the below:
3. Determine your Resource Group. If you already have an existing Resource Group, you can skip this step. Otherwise, to create a resource group you need to provide the pieces of information shown below:
Entity | Description | Example |
Resource Group Name | This is the name you choose for your Resource Group. | ECSTestCertificatesGroup |
Location | Geographic location for your key. | Canada Central |
To create a new resource group
, use the command below:
New-AzureRMResourceGroup -Name 'ECSTestCertificatesGroup' -Location 'Canada Central'
4. Determine your
keyvault
. If you do not have an existing keyvault, you will need to generate one.
To create a new keyvault follow the command line below:
New-AzureRmKeyVault -VaultName '<your Vault Name>' -ResourceGroupName '<your Group Name>' -Location '<your Location>' -SKU 'Premium'
Where:
Entity | Description | Example |
VaultName | Your own Vault Name. This name is unique. Microsoft Azure will reject your Vault Name if someone else has already registered that name in the Cloud. | MyNewECSKeyVault |
ResourceGroupName | Your own Group Name (chosen in Step 3 ). | ECSTestCertificatesGroup |
Location | Geographic location for your key. | Central Canada |
Part 2 of 3: Creating a Private Key and Certificate Signing Request (CSR)
1. Make sure you are still logged into your Microsoft Azure account from PowerShell.
2. Set the parameters for your
certificate policy
by using the following commands:
$vaultName = '<your Vault Name>'
$certificateName = '<your Certificate Name>'
$manualPolicy = New-AzureKeyVaultCertificatePolicy -SubjectName "<your FQDN>" -ValidityInMonths 24 -IssuerName Unknown
Where:
Entity | Description | Example |
$vaultName | Your Vault Name. | MyNewECSKeyVault |
$CertificateName | Your own designated Certificate Friendly Name. | MyCSCertificate |
-subjectName | Your Fully Qualified Domain Name (FQDN). | CN=www.testcertificates.com |
3. Execute the
Certificate Operation Command
:
$certificateOperation = Add-AzureKeyVaultCertificate -VaultName $vaultName -Name $certificateName -CertificatePolicy $manualPolicy
Your private key has been generated. To view your private key inside KeyVault, use the command:
Get-AzureKeyVaultKey -VaultName 'MyNewECSKeyVault'
4. Generate Certificate Signing Request (
CSR
) by using the below command:
$certificateOperation.CertificateSigningRequest
You have successfully created the CSR and are ready to create the certificate.
This is the CSR you will use to create the certificate in either your ECS Enterprise Account or during the ordering process if you are requesting an individual Code Signing certificate.
Part 3 of 3: Importing the Public Signed Certificate to Microsoft Azure KeyVault
After completing the creation of your certificate using either your ECS Enterprise account, or by completing the individual certificate purchase on our website, follow these steps to successfully import the Public Signed Certificate to Microsoft Azure KeyVault:
1. Download your certificate, which will be delivered in a .zip format.
2. Unzip the file and store it to your local drive so you may import it to Microsoft Azure Keyvault.
3. Import the certificate to Microsoft Azure KeyVault using the command:
Import-AzureKeyVaultCertificate -VaultName $vaultName -Name $certificateName -FilePath
Where:
Entity | Description | Example |
$VaultName | Your Vault Name. | MyNewECSKeyVault |
$CertificateName | Your Certificate Friendly Name | MyCSCertificate |
FilePath | Location in your drive where you store your downloaded certificate file. | C:\azuretest\ServerCertificate.crt |
You have successfully imported your certificate into your Microsoft Azure KeyVault Cloud HSM.
Note that at this time Microsoft Azure does not allow direct signing from within keyvault. Applications that use a keyvault must authenticate by using a token from Azure Active Directory. That means the usage of keyvault is limited to Azure Cloud environment only and cannot be used for third party application outside this realm.
For more information, see this article by Microsoft.
For best practices regarding the protection of private keys related to Code Signing certificates, please see our Best Practices article
here
.
If you have any questions or concerns please contact the
Entrust Certificate Services Support
department for further assistance:
Hours of Operation:
Sunday 8:00 PM ET to Friday 8:00 PM ET
North America (toll free): 1-866-267-9297
Outside North America: 1-613-270-2680 (or see the list below)
NOTE: It is very important that international callers dial the UITF format exactly as indicated. Do not dial an extra "1" before the "800" or your call will not be accepted as an UITF toll free call.
Country | Number |
Australia |
0011 - 800-3687-7863
1-800-767-513 |
Austria | 00 - 800-3687-7863 |
Belgium | 00 - 800-3687-7863 |
Denmark | 00 - 800-3687-7863 |
Finland |
990 - 800-3687-7863 (Telecom Finland)
00 - 800-3687-7863 (Finnet) |
France | 00 - 800-3687-7863 |
Germany | 00 - 800-3687-7863 |
Hong Kong |
001 - 800-3687-7863 (Voice)
002 - 800-3687-7863 (Fax) |
Ireland | 00 - 800-3687-7863 |
Israel | 014 - 800-3687-7863 |
Italy | 00 - 800-3687-7863 |
Japan |
001 - 800-3687-7863 (KDD)
004 - 800-3687-7863 (ITJ) 0061 - 800-3687-7863 (IDC) |
Korea |
001 - 800-3687-7863 (Korea Telecom)
002 - 800-3687-7863 (Dacom) |
Malaysia | 00 - 800-3687-7863 |
Netherlands | 00 - 800-3687-7863 |
New Zealand |
00 - 800-3687-7863
0800-4413101 |
Norway | 00 - 800-3687-7863 |
Singapore | 001 - 800-3687-7863 |
Spain | 00 - 800-3687-7863 |
Sweden |
00 - 800-3687-7863 (Telia)
00 - 800-3687-7863 (Tele2) |
Switzerland | 00 - 800-3687-7863 |
Taiwan | 00 - 800-3687-7863 |
United Kingdom |
00 - 800-3687-7863
0800 121 6078 +44 (0) 118 953 3088 |