mTLS Onboarding Guide
Certificate-based mutual authentication for Nuvy API
This guide describes step by step how a new client should perform mTLS (Mutual TLS) onboarding to consume protected endpoints of the Nuvy API. The goal is to ensure strong certificate-based authentication, where client and server validate each other before any HTTP request.
Prerequisites
- OpenSSL >= 1.1.1
- Secure storage for sensitive files
- Ability to configure certificates in application runtime
Algorithms
- Key algorithm: RSA (CA: 4096 bits, Client: 2048 bits)
- Signature / hash algorithm: SHA-256
Nuvy will provide the client with the public CA certificate:
This certificate is used only for validation and does not contain sensitive information. The client should store it securely for auditing and troubleshooting.
In the client's environment:
Generate a Certificate Signing Request (CSR):
| Field | Description |
|---|---|
| CN | Unique client identifier |
| O | Company name |
| OU | Environment (e.g., Production) |
Send the following file to Nuvy through a secure channel previously agreed upon:
Nuvy will sign the CSR and generate the client certificate with:
- ExtendedKeyUsage = clientAuth
- KeyUsage = digitalSignature, keyEncipherment
The client will receive:
Before using in production, the client MUST validate:
Expected result:
Example using curl:
Code examples for common platforms:
Java
Configure KeyStore + TrustStore
Node.js
Python
Nuvy can provide additional examples on demand.
When to rotate:
- Key compromise
- Certificate expiration
- Environment change
Process:
- Generate new key pair
- Generate new CSR
- New signature by Nuvy
- Client update
- Protect *.key files with restricted permissions (chmod 600)
- Never version-control private keys
- Plan periodic certificate rotation
- Monitor for ClientCertUntrusted errors in your logs
Common error: ClientCertUntrusted
- Certificate not signed by the correct CA
- Incorrect CA in TrustStore
- Expired certificate
- HTTP/2 usage (try forcing HTTP/1.1)
Quick handshake test:
Expected result:
Some clients already use a certificate from another partner (e.g., for migration). In this case, the client sends Nuvy their client certificate and the full certificate chain (leaf + intermediate/root CAs).
Nuvy will then:
- Extract the CA certificates from the chain
- Configure the infrastructure to trust the client's CA
- The client keeps using the same certificate and private key to connect to the Nuvy API
Download CA Certificate
Download the Nuvy CA public certificate (nuvy-ca.crt). This is step 1 of the onboarding process — you will need this certificate to verify that your signed client certificate is authentic.
Select environment:
This is the CA public certificate — it does not contain sensitive information and is safe to distribute.
Certificate Validator
After receiving your signed client certificate from Nuvy (step 5 of the guide), paste it here to confirm it was correctly issued by the Nuvy CA.
Select environment to validate against:
How does this work?
This tool parses your PEM certificate and verifies that the Issuer field matches the Nuvy CA. The verification runs entirely in your browser - your certificate is never sent to any server.