Certificate for Exchange Online
This guide will run you through the steps to create, install and associate a certificate with both an Entra ID application and Activate
Overview of Certificate Authentication
The EXO V3 PowerShell Module enables App-only authentication using a registered Azure AD application and a certificate. This method is:
- More secure than username/password (credential-based) authentication.
- MFA-free, unlike ROPC flows.
From July 2025, Microsoft will enforce mandatory MFA for non-interactive credential flows (e.g., ROPC). Certificate-based authentication is exempt from this, making it the preferred method for automation.
Here’s some recommended reading from Microsoft Docs to deepen your understanding.
There are limitations imposed on the Exchange Online connection by Microsoft, see Exchange Online Certificate Limitations for more detail.
Obtain a Certificate
You can use either:
- A self-signed certificate generated using PowerShell.
- A certificate issued through your organisation’s standard process.
For Exchange Online app authentication, a self-signed certificate is fully acceptable in production. Azure AD does not require a public certificate authority (CA)–issued certificate because the certificate is only used for proving app identity, not for public TLS encryption. What matters is keeping the private key secure and rotating the certificate periodically.
Here's a guide to creating a self-signed certificate Create a Self-Signed Certificate for EXO Authentication
Install the Certificate on the Activate Server
- Locate the exported pfx file (e.g., C:\Temp\ActivateCertEXO.pfx).
- Right-click the file and select Install PFX.
- When prompted, select Local Machine as the store location.
- Click Next.
- If prompted by User Account Control (UAC), click Yes.
- Click Next again to proceed to the password step.
- Enter the export password for the certificate and click Next.
- Choose Place all certificates in the following store.
- Click Browse, select Personal, then click OK.
- Click Next, then Finish to complete the import.
Upload the Certificate to the Azure App Registration
- Open the Azure portal.
- Navigate to the App Registration used for Exchange Online automation.
- In the menu, select Certificates & secrets.
- Under the Certificates tab, click Upload certificate.
- Select the .cer file exported from your certificate (do not use the .pfx, which contains the private key).
- Once uploaded, confirm it appears in the list of certificates for the application.
Configure Activate to Use the Certificate
- Open Activate Studio.
- On the Resources > Configuration > Office365 resource, remove any Credentials or PSCredentials parameters.
- On the Resources > Exchange Servers > Office365 resource, configure the following:
Parameter | Value |
|---|---|
PSCredentials | Network Credential with: • Username: {APPID}@{tenant}.onmicrosoft.com • Password: leave blank (Thumbprint method) or enter the certificate password (File method) |
PSCertificate | String parameter type Thumbprint: "THUMBPRINT" or File path: "C:\path\to\cert.pfx" |
Restart Activate Services
Restart the following services to apply the changes:
- Activate Studio
- Activate Orchestrator
- Activate App Pool (or run an IIS reset)