Why Store Certificates?
Without stored credentials, every certification request must include the full certificate PEM and private key PEM in the request body. This means:- Private keys travel over the network on every request
- Keys must be available in every system that calls the API
- Key rotation requires updating every integration point
Uploading a Certificate
In the dashboard, navigate to Credentials and click Add Certificate. You’ll need:- An X.509 certificate in PEM format (the file starting with
-----BEGIN CERTIFICATE-----) - The corresponding RSA private key in PEM format (starting with
-----BEGIN PRIVATE KEY-----) - A name for the certificate (e.g., “Production Signing Cert”)
Security
- Encryption at rest: Private keys are encrypted with AES-256-GCM before storage. The encryption key is set via the
CERTIFICATE_ENCRYPTION_KEYenvironment variable. - Private key never returned: After upload, the private key is never included in API responses. Only the certificate PEM (public) is accessible.
- Deletion: Deleting a credential permanently removes both the certificate and encrypted private key.
Plan Limits
| Plan | Certificates |
|---|---|
| Free | 1 |
| Pro | 5 |
| Team | Unlimited |
| Business | Unlimited |
Using in API Calls
PasscertificateId instead of inline PEM fields:
Generating a Test Certificate
For development and testing, generate a self-signed X.509 certificate with OpenSSL:key.pem (private key) and cert.pem (certificate) in the current directory.
The Forme engine accepts both PKCS#8 and PKCS#1 private key formats. Keys generated with
openssl genrsa (PKCS#1) are auto-converted. To explicitly convert to PKCS#8: openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in key.pem -out key-pkcs8.pemGetting a Production Certificate
For documents that need to be trusted by external recipients:- Certificate Authority (CA): Purchase a document signing certificate from a CA like DigiCert, GlobalSign, or Sectigo. These are trusted by Adobe Acrobat and other PDF viewers.
- Organizational PKI: If your organization runs its own PKI, issue a certificate from your internal CA.
- Government PKI: Some jurisdictions require certificates from government-approved CAs for legal documents.
Stored certificates are a hosted API feature. Self-hosted users should pass
certificatePem and privateKeyPem directly in API calls.