Skip to main content
On Ubuntu and other AppArmor distributions, charon runs under a confinement profile that does not permit reading the Futurex library or configuration from /usr/local/lib/fxpkcs11 and /etc/fxpkcs11. Grant that access before configuring strongSwan.
Skip this section on a distribution that does not use AppArmor. On SELinux, grant charon equivalent access to the same paths instead. This guide does not provide an SELinux policy.

Create the local AppArmor override

Shell
The file may already exist and be empty. An empty override parses cleanly and reloads without error, yet charon is still denied. Confirm the file has content before continuing.
Shell
The count is 10, matching the rules above. If it reports 0, the tee command did not write; re-run it.

Reload the profile

Shell

Verify AppArmor is no longer denying charon

This verification matters. If the override is missing or incomplete, nothing fails here — the problem surfaces several steps later as load-token reply {success=no} with no mention of AppArmor.
Shell
The command returns no output, or no entries whose profile= names charon and whose name= points at a Futurex path. Any such line names the exact path that is still blocked — add it to the override and reload.
If dmesg requires elevated access or returns nothing on your system, check the audit log instead:
Shell