@Mia Wang
GTS Root R4 is a newer root certificate that’s already part of Azure App Service’s platform-managed trusted root store, so it often gets loaded dynamically during TLS handshakes. However, GTS Root R1 and R2 are older (legacy) roots from Google Trust Services and may not be present in the default store used by all Azure App Service regions or SKUs. That’s why they might not load automatically, especially if MongoDB Atlas is presenting a cert chain anchored to R1 or R2 and Azure doesn’t recognize it. So yes, you are correct to upload R1 and R2 manually if you depend on them for secure TLS to MongoDB.
To Ensure R1 and R2 Are Trusted by Your App make sure the .cer
files for GTS Root R1 and R2 are uploaded to: TLS/SSL Settings > Public Key Certificates (Incoming client certificates)Docs: Upload public certificates to App Service, configure WEBSITE_LOAD_ROOT_CERTIFICATES
In your App Service app settings, add a setting named WEBSITE_LOAD_ROOT_CERTIFICATES
then set its value to the thumbprints of R1 and R2, comma-separated (no spaces)
Docs: WEBSITE_LOAD_ROOT_CERTIFICATES
This tells Azure to make these root certs available in your app’s trusted root store. After setting the environment variable, be sure to restart your App Service to load the certs, you can use Kudu PowerShell to check if the certs were loaded by running "dir Cert:\LocalMachine\Root" command.
Alternative approach:
You can also verify from within your app (or Kudu) using a quick TLS test:
openssl s_client -connect <your-mongodb-host>:<port> -showcerts
This shows the certificate chain served by MongoDB Atlas, you’ll see if it includes GTS R1/R2 and confirms your app can build trust successfully.
Let me know if you're able to verify "GTS Root R1" and "GTS Root R2" in your app services by following above.