API keys
See Authentication. In short: keys areforme_sk_ plus 32 hex characters, shown in full only at creation, and revoked keys stop working at once.
Why store certificates
Without a stored certificate, every certify request carries the certificate and the private key:- The private key travels over the network on every request.
- Every system that certifies needs a copy of the key.
- Rotating the key means updating every integration.
Uploading a certificate
On Credentials, add a certificate with:- A name, e.g. “Production Signing Cert” (up to 100 characters).
- The X.509 certificate, PEM (
-----BEGIN CERTIFICATE-----). It must parse as a valid X.509 certificate. - The RSA private key, PEM. PKCS#8 (
-----BEGIN PRIVATE KEY-----) and PKCS#1 (-----BEGIN RSA PRIVATE KEY-----) both work.
Security
- Encrypted at rest. The private key is encrypted with AES-256-GCM before it is stored.
- Never returned. No endpoint returns the private key.
GET /v1/certificatesreturns only the name, subject, and expiry. - Deletion. Deleting a certificate removes the certificate and its encrypted key.
- Scope. A certificate belongs to the account (personal or organization) that uploaded it. Only that account’s API keys can use its ID.
Using a certificate
Generating a test certificate
For development, create a self-signed certificate with OpenSSL:Getting a production certificate
- Certificate Authority (CA). Buy a document signing certificate from a CA such as DigiCert, GlobalSign, or Sectigo.
- Organizational 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. On the self-hosted server, pass the certificate and key in each request.