I have a requirement to allow customers to provide site-specific Certificate Authorities (CAs) for environments that use transparent TLS inspection, which is a very common deployment scenario. While reviewing the available Ubuntu Core options, I found two system options that appear to address custom CA management.
The first is store-certs, which is specifically used by snapd for Snap Store communication. I have tested this mechanism and understand its purpose. Adding a CA or CA bundle through store-certs allows snapd operations such as snap refresh and snap install to successfully traverse TLS inspection without requiring firewall exceptions.
The second option is pki.certs.custom, which appears to provide a certificate repository managed by snapd. When a certificate bundle is imported, it materialized under /var/lib/snapd/pki/v1.
For example, importing a bundle named cabundle creates:
/var/lib/snapd/pki/v1/cabundle.crt
I also observed that custom certificates are merged into:
/var/lib/snapd/pki/v1/merged/ca-certificates.crt
The resulting trust bundle appears functional (with transparent TLS inspection). For example, OpenSSL validation succeeds when I explicitly reference the generated bundle:
openssl s_client \
-connect google.com:443 \
-CAfile /var/lib/snapd/pki/v1/merged/ca-certificates.crt \
-verify_return_error
Result:
Verification: OK
What is unclear to me is how the pki.certs.custom trust store is intended to be consumed. While certificates are successfully imported and merged, I have not found evidence that the resulting trust bundle is automatically used by the operating system, OpenSSL, or confined snaps.
My questions are:
-
What components are expected to consume certificates installed through
pki.certs.custom? -
Are there downstream actions or integrations that occur after the certificate is accepted and written under
/var/lib/snapd/pki/v1? -
Is the expectation that individual snaps discover and reference the generated trust bundle themselves?
-
Is there a supported mechanism for exposing these certificates to applications in a consistent, system-wide manner?
-
Are there future plans for broader trust store integration on Ubuntu Core?
Our Ubuntu Core devices host several independent internet-connected snaps, including device management, observability, and cloud-connected product applications. Each of these may need to operate in customer environments that perform TLS inspection.
Before designing and implementing our own certificate distribution and trust model, I would like to understand whether a supported platform-level solution already exists. Ideally, I would like to:
-
Accept customer-provided CA bundles.
-
Install them in a central, supported location.
-
Provide a documented and consistent mechanism for snap developers to discover and consume those certificates.
-
Avoid creating custom implementations if Ubuntu Core already provides a recommended approach.
Any guidance on the intended use of pki.certs.custom and the recommended strategy for custom CA management on Ubuntu Core would be greatly appreciated.