Code-signing Quickstart
Goal of this Quickstart
Section titled “Goal of this Quickstart”This quickstart helps you:
- Deploy a minimal Code Signing setup
- Perform a successful signing operation
- Verify the generated signature
This guide is intended for:
- DevOps engineers
- Platform engineers
- Security teams evaluating the system
⚠️ This quickstart uses a non-production setup.
For enterprise deployments, follow the On-Prem or HSM-backed installation guides.
Prerequisites
Section titled “Prerequisites”Before you begin, ensure:
- Linux system (local VM or server)
- Java 17 or later
- Docker installed (for quick evaluation)
- A sample artifact to sign (JAR, EXE, or binary)
High-Level Flow
Section titled “High-Level Flow”Artifact → Signing Request → Code Signing API → Signing Engine → Key Store → Signed Artifact → VerificationStep 1: Start the Code Signing ServiceStart the signing service using Docker:
bashCopy codedocker run -d \ --name qcecuring-code-signing \ -p 8080:8080 \ qcecuring/code-signing:latestVerify the service is running:
bashCopy codecurl http://localhost:8080/healthExpected response:
jsonCopy code{ "status": "UP" }Step 2: Configure a Signing Key (Evaluation Only)Create a temporary signing key using the software keystore:
bashCopy codeqcs-cli key create \ --name demo-signing-key \ --type software⚠️ Software keys are not recommended for production use.
Step 3: Sign an ArtifactSign a sample artifact:
bashCopy codeqcs-cli sign \ --key demo-signing-key \ --input app.jar \ --output app-signed.jarWhat happens internally:
Request validation
Policy enforcement
Signing inside the protected boundary
Audit log generation
Step 4: Verify the SignatureVerify the signed artifact:
bashCopy codeqcs-cli verify \ --input app-signed.jarExpected output:
textCopy codeSignature validCertificate chain trustedStep 5: Review Audit LogsView recent signing activity:
bashCopy codeqcs-cli audit list --limit 5This confirms:
Who initiated the signing
Which key was used
When the operation occurred