An Azure service that is used to manage and protect cryptographic keys and other secrets used by cloud apps and services.
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:
- Configure the pool to use a Linux path
In the Managed DevOps Pool configuration, set
certificateStoreLocationto a directory on the Ubuntu agent, for example:
For Ubuntu, when the path points to the trusted store (for example"secretsManagementSettings": { "certificateStoreLocation": "/usr/local/share/ca-certificates", "observedCertificates": [ "https://<keyvault>.vault.azure.net/secrets/ROOT-CA" ], "keyExportable": false }, "logonType": "Service"/usr/local/share/ca-certificates), the certificate is added to that certificate store as root. - 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. - Verify on the agent
After the pool is updated and an agent is provisioned:
If using a different directory (for examplesudo ls -l /usr/local/share/ca-certificates sudo grep -i "Root CA" /usr/local/share/ca-certificates/* 2>/dev/null | sed 's/:.*//'/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: