Certificate pfx to Base64

To convert certificate that is in .pfx to base64 format in PowerShell, you can use .NET namespace available in PowerShell to convert. I had a scenario where I was required to use base64 encoding to upload certificate to Azure to secure communication to backend instance. Since Microsoft Azure provides rich API to work with. I was able to make a patch request and push certificate to Azure. In this tutorial, I will show you how to convert certificate from .pfx to base64. Open PowerShell as an administrator. Now that we have PowerShell console opened. Let’s first load the content into a variable.

Param([string] $file) $file = '.\certificate.pfx' $pfxFileBytes = get-content $file -Encoding Byte [System.Convert]::ToBase64String($pfxFileBytes) | Out-File 'PfxFileBytes-Base64.txt'

Once you have your Base64 string you can insert it in the ARM template as shown below.

Azuredeploy.parameters.json

    "cert": {"value": "MIIT..."},
    "certPass": { "value": "password" }

Azuredeploy.json

  "parameters": {
      "cert": {
      "type": "securestring"
    },
    "certPass": {
      "type": "securestring"
    }
  }
  "variables": {
	"var_cert_name": "[concat( tolower(parameters('para_application_name')), uniqueString(resourceGroup().id))]",
  }
  "resources": [
  	  {
      "apiVersion": "2015-08-01",
      "location": "[resourceGroup().location]",
      "name": "[variables('var_cert_name')]",
      "properties": {
        "pfxBlob": "[parameters('cert')]",
        "password": "[parameters('certPass')]"
      },
      "scale": null,
      "tags": {
        "displayName": "Certificate"
      },
      "type": "Microsoft.Web/certificates"
    }
  ]

Written on February 12, 2019