docs/documentation/platform/pki/code-signing/overview.mdx
Digitally sign software artifacts (JARs, binaries, container images, and more) while keeping private keys secure on the server. Instead of distributing signing keys to developer workstations or CI pipelines, signing operations are performed centrally through Infisical with full audit trails and approval controls.
<Info> Code Signing uses **Signers** as the organizing concept, similar to how [Applications](/documentation/platform/pki/applications/overview) work for certificates. Product Admins create Signers and assign team members who can then request signing access. </Info>sequenceDiagram
participant Tool as Signing Tool
participant PKCS as PKCS#11 Module
participant Infisical as Infisical
Tool->>PKCS: Sign data
PKCS->>Infisical: POST /signers/{id}/sign
Infisical->>Infisical: Validate grant, sign data
Infisical-->>PKCS: Signature
PKCS-->>Tool: Signature
codeSigning extended key usage.A signer is a named code-signer bound to a certificate. It represents a signing capability within Certificate Manager. Private keys are stored securely on the Infisical server and never leave it. All cryptographic operations are performed server-side.
Signing policies optionally define the rules that must be satisfied before signing can occur. Policies support constraints that can be combined:
Every call to sign data, whether it succeeds, fails, or is denied, is recorded as a signing operation. This provides a complete audit trail of who signed what, when, and using which grant.
The Infisical PKCS#11 module implements the PKCS#11 v2.40 standard, allowing standard signing tools to use Infisical signers without code changes. The module supports RSA (PKCS#1 v1.5 and PSS) and ECDSA signing mechanisms.
If you're new to Code Signing, start by creating a Signer. If you need approval workflows, set up a Signing Policy first.
For integration guides with specific tools, see:
<CardGroup cols={3}> <Card title="Cosign" icon="docker" href="/documentation/platform/pki/guides/code-signing/cosign"> Sign container images </Card> <Card title="jarsigner" icon="java" href="/documentation/platform/pki/guides/code-signing/jarsigner"> Sign Java JARs </Card> <Card title="GPG" icon="key" href="/documentation/platform/pki/guides/code-signing/gpg"> Sign with GPG </Card> </CardGroup>