CI Hex HexDocs

This Erlang library contains a CA bundle that you can reference in your Erlang application. This is useful for systems that do not have CA bundles that Erlang can find itself, or where a uniform set of CAs is valuable.

This an Erlang specific port of certifi. The CA bundle is derived from Mozilla's canonical set.

The bundled 118 certificates were verified on 2026-10-23 against the Mozilla CA bundle published by curl, dated 2026-10-20. The distrusted emSign C1, C3, and G3 roots are excluded.

Usage

CaCerts = certifi:cacerts(),
SslOptions = [{verify, verify_peer},
              {depth, 99},
              {cacerts, CaCerts}],
ssl:connect( "example.com", 443, SslOptions ).

You can also retrieve the path to the file and load it by yourself if needed:

Path = certifi:cacertfile().

Changelog

See CHANGELOG.md.

Development

Update the CA bundle from curl's Mozilla extraction (requires curl and OpenSSL):

make update
rebar3 clean
rebar3 eunit

The update verifies the published SHA-256 checksum and parses the certificates before replacing priv/cacerts.pem. Review changes to the trust roots and update the test expectations before committing. Clean before rebuilding because the certificates are embedded into the module at compile time.

Testing:

rebar3 eunit

Documentation:

rebar3 ex_doc