Trust & Security

Security at CertForge

CertForge was built for environments where certificate issuance is itself a security control. Every design decision — from the approval workflow to the audit trail — treats your PKI as the trust anchor it is.

Tamper-Evident Audit Trail

Every approval decision is SHA-256 hash-chained. Retroactive modification of any record breaks the chain — detectable on demand.

Zero Trust Issuance

No certificate issues without passing policy. Every request is evaluated against domain rules, validity limits, and approval workflows before issuance.

TLS Everywhere

All data in transit over TLS 1.2+. mTLS available for API clients. Session cookies are HttpOnly, Secure, and SameSite=Lax.

RBAC + MFA + SSO

Role-based access control, TOTP multi-factor authentication, and OIDC SSO (Azure AD, Okta, Google). Sessions invalidated immediately on password change.

Org Isolation

Each organization's DTPs, approvals, and certificates are strictly isolated. Org users cannot see or access other orgs' data.

Self-Hosted Option

Run CertForge entirely on your own infrastructure. Your certificate data never leaves your environment. Air-gapped deployments supported.

Cryptographic Audit Trail

The audit log that proves it.

Most audit logs are just append-only databases. Anyone with DB access can silently delete or alter records. CertForge's approval log is different.

Every record's SHA-256 hash is computed over both the record content and the previous record's hash — forming an unbreakable chain. Alter any record, and every subsequent hash in the chain is invalidated. You can verify integrity on demand from the UI or export the raw chain for independent verification.

This means you can prove to any auditor — cryptographically — that no certificate was ever issued without proper authorization, and that the record of who approved what has never been touched.

record 1
hash: sha256(payload + genesis)
prev: genesis
record 2
hash: sha256(payload + hash₁)
prev: hash₁
tampered record
hash: sha256(modified + hash₂)
⚠ chain broken — detected

Authentication & Sessions

Supported Methods

  • Username + password (bcrypt, cost 12)
  • TOTP multi-factor authentication (RFC 6238)
  • SSO / OIDC — Azure AD, Okta, Google Workspace, any OIDC provider
  • API keys for automated clients (mTLS option available)

Session Controls

  • Cookies: HttpOnly, Secure, SameSite=Lax
  • All sessions invalidated on password change
  • Configurable session lifetime
  • Rate limiting on all auth endpoints (20 req/min per IP)

Encryption

What How
Data in transitTLS 1.2+ (TLS 1.3 preferred). Minimum version enforced.
API client authmTLS available; API key auth with HMAC-signed tokens
Passwordsbcrypt, cost factor 12
Private keys (self-hosted)Stored at rest per your filesystem/volume encryption policy
Database (managed cloud)AES-256 encryption at rest

Compliance Posture

CertForge's controls are designed to support common compliance frameworks. SOC 2 Type II audit is in progress.

📋

SOC 2 Type II

In Progress

Security, Availability, and Confidentiality trust service criteria. Audit evidence collection ongoing.

🔐

NIST 800-53

Supported

AU-9 (audit protection) and AU-10 (non-repudiation) addressed by the hash-chained approval log.

🌐

CA/Browser Forum

Ready

47-day max validity enforcement built in. Stay ahead of browser requirements without changing your issuance pipeline.

🏥

HIPAA / PCI-DSS

Supported

Access controls, audit logging, and self-hosted option meet certificate management requirements for regulated industries.

Responsible Disclosure

We're committed to working with security researchers. If you discover a vulnerability in CertForge, please report it privately — we'll acknowledge within 24 hours and work with you toward a fix.

  • Critical issues resolved within 7 days
  • Non-critical issues within 30 days
  • No legal action against good-faith researchers
  • Credit in release notes if desired
  • CVEs requested for significant vulnerabilities
security@certforge.xyz
security.txt
Contact: mailto:security@certforge.xyz
Policy: certgovernance.app/security
Preferred-Languages: en
Also available at /.well-known/security.txt