export KEYVAULT_NAME=<keyvault-name>
export LOCATION=<location>
export RESOURCE_GROUP=<resource-group>
az keyvault create --resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--name "${KEYVAULT_NAME}" \
--sku premium
az keyvault secret set --vault-name $KEYVAULT_NAME --name secret1 --value test
az keyvault key create --vault-name $KEYVAULT_NAME --name key1 --kty RSA --size 2048
az keyvault key create --vault-name $KEYVAULT_NAME --name rsahsmkey1 --kty RSA-HSM --size 2048
az keyvault key create --vault-name $KEYVAULT_NAME --name echsmkey1 --kty EC-HSM --curve P-256
The certificates are generated using step-cli so the SAN can be specified.
step certificate create test.domain.com test.crt test.key --profile self-signed --subtle --san test.domain.com --kty RSA --not-after 86400h --no-password --insecure
# export to pfx so we can import it into Azure Key Vault
openssl pkcs12 -export -in test.crt -inkey test.key -out test.pfx -passout pass:
az keyvault certificate import --vault-name $KEYVAULT_NAME --name pemcert1 --file test.pfx
az keyvault certificate import --vault-name $KEYVAULT_NAME --name pkcs12cert1 --file test.pfx
step certificate create test.domain.com testec.crt testec.key --profile self-signed --subtle --san test.domain.com --kty EC --not-after 86400h --no-password --insecure
# export to pfx so we can import it into Azure Key Vault
openssl pkcs12 -export -in testec.crt -inkey testec.key -out testec.pfx -passout pass:
az keyvault certificate import --vault-name $KEYVAULT_NAME --name ecccert1 --file testec.pfx