Pareto Security

No compromised CAs are trusted (macOS)

How to fix

The check's details in Pareto Security list every file that still contains the affected roots. Fix each one below. ~ means your home folder.

macOS system bundle

The built-in curl, git, python3, perl, ruby, and openssl use /etc/ssl/cert.pem, which macOS has not updated yet. Open Terminal and run this to back up the file and remove the affected roots:

sudo cp -p /etc/ssl/cert.pem /etc/ssl/cert.pem.bak &&
sudo awk '/^(###|===) /{skip=0}
  /^=== .*\/CN=(AAA Certificate Services|emSign ECC Root CA - G3)$/{skip=1}
  !skip' /etc/ssl/cert.pem.bak | sudo tee /etc/ssl/cert.pem > /dev/null

To undo it, run sudo cp -p /etc/ssl/cert.pem.bak /etc/ssl/cert.pem. A macOS update may replace this file again.

Homebrew

Upgrade the ca-certificates formula to version 2026-10-20 or newer. This also fixes openssl@3, which uses the same bundle.

brew update && brew upgrade ca-certificates

Nix and nix-darwin

If you use nix-darwin, add this to your configuration and rebuild with darwin-rebuild switch. This fixes /etc/ssl/certs/ca-certificates.crt.

security.pki.caCertificateBlacklist = [
  "Comodo AAA Services root"
  "emSign ECC Root CA - G3"
];

For the bundle in the default Nix profile (/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt), upgrade nss-cacert once a fixed version is available in your Nix channel.

Python certifi

Upgrade certifi to version 2026.10.19 or newer in every Python environment the check lists.

For an app installed with pipx, replace NAME with the folder name from the path, for example ~/.local/pipx/venvs/NAME/...:

pipx runpip NAME install --upgrade certifi

For other Python installs, run the pip that belongs to that Python:

python3 -m pip install --upgrade certifi

After fixing the files, run checks again in Pareto Security.

More Mac checks