Quick Reference
Certificate Configuration
Inter-Component TLS
Configuring argocd-server TLS
Inbound TLS Options
Configure TLS parameters for the API server:Certificate Priority
Argo CD determines which certificate to use in this order:1
argocd-server-tls Secret
Recommended: Dedicated TLS secret for argocd-server
This secret is safe to manage via third-party tools like cert-manager or Sealed Secrets.
2
argocd-secret Secret
Deprecated: Legacy location for TLS certificateOnly used if
argocd-server-tls doesn’t exist. Not recommended for new deployments.3
Auto-generated Certificate
If neither secret contains a certificate, Argo CD generates and persists a self-signed certificate in
argocd-secret.Using cert-manager
Automate certificate management with cert-manager:- Let's Encrypt
- Internal CA
Configuring argocd-repo-server TLS
Inbound TLS Options
Certificate Configuration
Create theargocd-repo-server-tls secret:
Self-Signed Certificates
If using a self-signed certificate, add the CA certificate:Unlike argocd-server, argocd-repo-server requires a pod restart to pick up certificate changes.
Enable Strict TLS Validation
By default, components use non-validating TLS connections to argocd-repo-server. To enable strict validation:1
Create Persistent Certificate
Create the
argocd-repo-server-tls secret as shown above.2
Restart repo-server
3
Enable Strict TLS
Add
--repo-server-strict-tls parameter to connecting components:Configuring argocd-dex-server TLS
Inbound TLS Options
Certificate Configuration
Create theargocd-dex-server-tls secret:
Similar to repo-server, include correct SAN entries:
DNS:argocd-dex-serverDNS:argocd-dex-server.argocd.svc
Enable Strict TLS Validation
1
Create Certificate
Create the
argocd-dex-server-tls secret.2
Restart dex-server
3
Enable Strict TLS in argocd-server
Service Mesh / mTLS Configuration
In service mesh environments with sidecar proxies (e.g., Istio, Linkerd), you may want to disable TLS between Argo CD components and let the mesh handle encryption.Disable TLS to repo-server
1
Configure repo-server
Disable TLS and restrict to loopback:
Listening on localhost prevents direct network access while allowing sidecar communication.
2
Configure Clients
Set plaintext mode on all clients:
3
Configure Service Address
Point to sidecar proxy instead of direct service:
Disable TLS to dex-server
1
Configure dex-server
2
Configure argocd-server
Complete Configuration Examples
Production Setup with cert-manager
Internal PKI Setup
Step-by-Step Internal PKI Configuration
Step-by-Step Internal PKI Configuration
-
Create internal CA
-
Install CA as cluster resource
-
Configure cert-manager with internal CA
- Request certificates Use the Certificate resources shown in previous examples.
Troubleshooting
Certificate not picked up
Certificate not picked up
Symptom: New certificate not being usedSolution:
- For
argocd-server: Wait up to 60 seconds (hot reload) - For
argocd-repo-serverandargocd-dex-server: Restart pods
TLS handshake errors
TLS handshake errors
Symptom:
x509: certificate is valid for X, not YSolution: Ensure SAN entries match the DNS names used by clients:Self-signed certificate errors
Self-signed certificate errors
Symptom:
x509: certificate signed by unknown authoritySolutions:- Add
ca.crtto the TLS secret - Enable strict TLS validation with proper CA trust
- Or use
--repo-server-plaintextif in service mesh
cert-manager not issuing
cert-manager not issuing
Check certificate status:Common issues:
- DNS not resolving for ACME challenges
- Rate limiting from Let’s Encrypt
- Incorrect issuer configuration
Best Practices
Use cert-manager
Automate certificate lifecycle management and rotation
Enable Strict TLS
Validate certificates for inter-component communication
Monitor Expiry
Set up alerts for certificates expiring within 30 days
Use Strong Ciphers
Configure TLS 1.2+ and modern cipher suites only
Related Resources
Security Overview
Comprehensive security architecture and threat model
Secrets Management
Best practices for managing secrets
Signed Releases
Verify Argo CD artifacts and images
cert-manager
Kubernetes certificate management