Risk level: High (P1)
The tls_skip_verify: true backend config parameter disables server TLS certificate verification.
This is acceptable only in a dev/test environment with self-signed certificates.
⚠️ NEVER usetls_skip_verify: truein production.
With tls_skip_verify: true, rproxy accepts any certificate from the backend, including a forged
one. An attacker positioned between rproxy and the backend (a MITM attack) can:
- intercept and modify traffic
- steal authorization tokens and sensitive data
- inject malicious content into responses
- Production: always use valid certificates (Let's Encrypt, an internal CA).
- Dev/testing:
tls_skip_verify: truewith self-signed certificates is acceptable. - Internal CA: for internal services, configure a trusted root certificate instead of disabling verification.
- Monitoring: rproxy logs a warning (
tracing::warn) whenevertls_skip_verify: trueis in effect — monitor these entries.
The TLS certificate and private key paths can be set via:
| Variable | Default | Description |
|---|---|---|
TLS_CERT_PATH |
tls_cert from YAML |
Path to the certificate file (PEM) |
TLS_KEY_PATH |
tls_key from YAML |
Path to the private key file (PEM) |
Environment variables take priority over the config file.
key.pem— mode0600(owner read/write only)cert.pem— mode0644(world-readable, owner-writable)- Both files are in
.gitignore(*.pem); private keys are never committed.