Share via

Installing CA Root certificate in Managed DevOps Pool trusted Store

Akansha Jain (Consultant) 0 Reputation points
2026-06-22T08:33:04.2933333+00:00

Hi,

I am trying to install CA root certificates in Ubuntu Managed DevOps Pool. My certificate is stored as .pem file in key vault secrets.

I don't have any private key for my certificate and I am using Azure ubuntu image.

I am creating MDP using terraform and its working fine and in MDP configuration also I can see the certificate details.

But when I am running script to check the certificates in agents via Azure Pipelines, its not showing and no errors also.

secretsManagementSettings": {
                    "certificateStoreLocation": "LocalMachine",
                    "observedCertificates": [
                        "https://<keyvault>.vault.azure.net/secrets/ROOT-CA"
                    ],
                    "keyExportable": false
                },
                "logonType": "Service"

sudo find / -type f ( -name ".crt" -o -name ".cer" -o -name "*.pem" ) 2>/dev/null | while read f; do openssl x509 -in "$f" -noout -subject 2>/dev/null done | grep -i "Root CA"

Can anyone suggest, what I can do?

Azure Key Vault
Azure Key Vault

An Azure service that is used to manage and protect cryptographic keys and other secrets used by cloud apps and services.


1 answer

Sort by: Most helpful
  1. AI answer

    2026-06-22T08:33:19.9133333+00:00

    On Ubuntu agents in a Managed DevOps Pool, certificateStoreLocation must be a filesystem path, not LocalMachine. LocalMachine is only valid for Windows agents.

    For Linux/Ubuntu:

    1. Configure the pool to use a Linux path In the Managed DevOps Pool configuration, set certificateStoreLocation to a directory on the Ubuntu agent, for example:
         "secretsManagementSettings": {
           "certificateStoreLocation": "/usr/local/share/ca-certificates",
           "observedCertificates": [
             "https://<keyvault>.vault.azure.net/secrets/ROOT-CA"
           ],
           "keyExportable": false
         },
         "logonType": "Service"
      
      For Ubuntu, when the path points to the trusted store (for example /usr/local/share/ca-certificates), the certificate is added to that certificate store as root.
    2. Ensure the secret in Key Vault is a certificate The Managed DevOps Pool key vault integration uses the Key Vault VM extension behavior. On Linux, the extension downloads certificates as PEM files into the directory specified by certificateStoreLocation.
    3. Verify on the agent After the pool is updated and an agent is provisioned:
         sudo ls -l /usr/local/share/ca-certificates
         sudo grep -i "Root CA" /usr/local/share/ca-certificates/* 2>/dev/null | sed 's/:.*//'
      
      If using a different directory (for example /var/lib/waagent/Microsoft.Azure.KeyVault/app1), look there instead.

    If both Windows and Linux images are needed and a single certificateStoreLocation cannot satisfy both, split them into separate pools because certificate settings are defined at the pool level.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.