Artica Wiki

Trust store: trusted and rejected certificates

Manage the certificate authorities trusted by the SSL proxy: remove a Debian root, import a private CA, reject a compromised intermediate such as the eMudhra certificates of October 2026, and export the trust store.

The trust store is the list of certificate authorities (CA) that the appliance trusts.
The proxy uses it every time it opens a TLS connection itself.
This happens when it decrypts HTTPS traffic (SSL inspection) and when it checks the certificate of a remote server.
The Trusted certificates window lets you manage this list without a command line.

From this window you can:

Benefits

Open the trust store

The window opens on the Trust store tab.

The line under the blue banner shows the state of the trust store.

The window has three tabs.
Each tab shows a counter.

Tab Content
Trust store Every authority the proxy trusts.
The Debian roots come first, followed by your own authorities.
Rejected certificates The certificates that the proxy refuses, with the reason given by the administrator.
Custom certificates Only the authorities that are not part of Debian: the ones you imported, and the ones placed by hand in /usr/local/share/ca-certificates.

Read the table

 

Column Meaning
Certificate and subject (CN) The short name of the authority and its file.
Hover the name to see the full subject.
The icon shows the key: amber padlock for RSA, purple shield for elliptic curve (ECC), blue building for your own authorities.
Issuer The authority that signed the certificate, with its country.
The second line gives the key type, for example RSA 4096-bit or ECC NIST P-384.
Validity The expiry date and the time left.
The time left turns orange under 90 days and red once the certificate has expired.
Origin Debian for the roots shipped with the system.
Added for the authorities imported from this window.
Local for files placed by hand.
State Trusted or Removed.
An orange label shows a change that is waiting for Apply.
Action Remove or restore a Debian root, delete an imported authority, or cancel a pending change.

The search field filters on the name, the issuer and the country.
The Origin list also filters on the removed authorities and on the pending changes.
The table shows 15 lines per page.

The compromised eMudhra intermediate certificates

On October 21, 2026, Cisco Talos published an advisory about eight compromised intermediate certificates of the eMudhra certificate authority.
A flaw in eMudhra's key generation produced weak P-384 keys for these eight intermediates.
Whoever obtains one of these private keys can issue a certificate for any website.
Six of them sign TLS certificates.
The two others sign code.

eMudhra revoked the certificates.
Chrome, Mozilla and Apple blocked the TLS ones, and Microsoft blocked the two code signing ones.
Talos also warns that other applications use their own trust stores.
It lists proxies and gateways among the products to check.
A proxy that decrypts HTTPS does its own certificate check, so the browser block does not protect it.

Talos lists six TLS intermediates:
 

Certificate Issuer SHA-256 fingerprint
EM EV TLS CA - G3B (eMudhra BV) emSign Root TLS CA - G3 E7568FE6E12331F4FD7DE61DA4C7559D0F8EB192A218D4741A3BA75184333838
EM OV TLS CA - G3B (eMudhra BV) emSign Root TLS CA - G3 98B896625C0C230ADEEC3EB2CF6AAD5001ECF9156A68644E82374CE5833BC25B
EM DV TLS CA - G3B (eMudhra BV) emSign Root TLS CA - G3 42C4ACCD12C4F59597925E1A08A7A90102608543809308D50EC427E118BA1493
EM EV TLS CA - G3C (eMudhra Inc) emSign Root TLS CA - G3 432EC25F0D28DE9006D97BF752F17BBB2CD41F669933FCB072D9A1148D0261F3
EM OV TLS CA - G3C (eMudhra Inc) emSign Root TLS CA - G3 CB6E15165AC802E9B3F993F16C25D41F4E81C21EBDE71AE1B012AC00BF9C7C3F
EM DV TLS CA - G3C (eMudhra Inc) emSign Root TLS CA - G3 0164D7CEAE5BB909C272AF151FF44B1177AE9B47D9424B94F1D9558C30934D19

The two code signing intermediates (EM OV CS CA - G3B and EM OV CS CA - G3C) do not concern the proxy.

Step 1: check whether your trust store can reach these intermediates

Step 2: download the certificate
The rejection needs the certificate itself, not only its fingerprint.

https://crt.sh/?sha256=42C4ACCD12C4F59597925E1A08A7A90102608543809308D50EC427E118BA1493
openssl x509 -in em_dv_g3b.crt -noout -subject -issuer -fingerprint -sha256
subject=C=NL, O=eMudhra BV, CN=EM DV TLS CA - G3B
issuer=C=IN, O=eMudhra Technologies Limited, CN=emSign Root TLS CA - G3
sha256 Fingerprint=42:C4:AC:CD:12:C4:F5:95:97:92:5E:1A:08:A7:A9:01:02:60:85:43:80:93:08:D5:0E:C4:27:E1:18:BA:14:93

Step 3: reject the certificate

The list shows each rejected certificate with its issuer, its expiry date, the reason and the date of the rejection.
The state line turns to Pending: nothing has changed on the system yet.

Step 4: apply

The state line then shows Applied to the system with the date.

Step 5: check from the command line

openssl x509 -in /usr/local/share/ca-certificates/artica-rejected/42c4accd12c4f59597925e1a08a7a90102608543809308d50ec427e118ba1493.crt -noout -text | grep -A1 "Rejected Uses"
Rejected Uses:
  TLS Web Server Authentication
grep -c "BEGIN TRUSTED CERTIFICATE" /etc/ssl/certs/ca-certificates.crt

The count must be equal to the number of rejected certificates.

Other operations

What happens when you click Apply

  1. Artica checks the saved policy.
    Each fingerprint must match its certificate.
    A certificate cannot be imported and rejected at the same time.
  2. It saves the current trust store.
  3. It writes the Debian selection to /etc/ca-certificates.conf.
    Imported authorities go to /usr/local/share/ca-certificates/artica-added.
    Rejected certificates go to /usr/local/share/ca-certificates/artica-rejected.
  4. It runs update-ca-certificates.
  5. Before it writes any rejection, it checks that the OpenSSL version of the appliance really refuses a rejected certificate.
    If it does not, the rejections are skipped and the state shows Rejection not applied.
  6. It checks the new bundle.
    If a removed root is still present or a rejection is missing, it restores the saved trust store.
  7. It reloads the proxy.
    If the reload fails, the trust store stays applied and the state shows Store applied but Squid was not reloaded.
  8. On a cluster master, the new trust store is sent to the nodes with the next configuration package.

Limits

REST API

The same operations are available on the local API, under /certificates/api/truststore.

Method and path Role
GET store?search= List the trust store, with pending changes
GET rejected List the rejected certificates
GET status State of the last application, warnings, cluster nodes
POST roots/remove and POST roots/restore Remove or restore a Debian root ({"name":"mozilla/....crt"})
POST added and DELETE added/{sha256} Import or delete an authority
POST rejected and DELETE rejected/{sha256} Reject a certificate or cancel the rejection ({"pem":"...","reason":"..."})
POST apply Apply the saved policy
GET export Download the bundle in force (PEM)

References