--- title: Cloudflare breadcrumbs: - title: Cloud --- {% include header.md %} Mostly a list of how I like things in Cloudflare, for the very few features I use. ## DNS Hosting - Plan: Free - DNS: - DNSSEC: Yes (no multi-signer) - Boilerplate records (using zone "example.net"): - `CNAME @ "mario.example.net"` (where the main site is hosted) - `CNAME www "mario.example.net"` (for redirect til non-www) - `TXT @ "v=spf1 include:_spf.google.com ~all"` (including Google-mail, remove `include:` if not used) - `TXT * "v=spf1 ~all"` (avoid mail from random subdomains) - `TXT _dmarc "v=DMARC1; p=quarantine; pct=100;"` ## HTTP Reverse Proxy - DNS proxy status (traffic through Cloudflare): - Enabled for most HTTP/HTTPS sites that behave properly and I want better cached performance and extra security for (e.g. main site). - SSL/TLS: - Mode: Full (strict) (with exception through page rules) - Always use HTTPS: Yes - HSTS: On, no max-age, don't include subdomains, preload. - Minimum TLS version: 1.2 - Origin certificates: Create for websites served through Cloudflare. Or just use Let's Encrypt (requires a non-HTTPS page rule for HTTP challenge). - Authenticated Origin Pulls: Yes. Must be configured on the hosting webserver too to prevent direct connections. - Security: - Security level: Low or Medium (default) - Caching: - Boilerplate rules (example sites): - "No cache (example.net)" (if the main site doesn't like caching, disable it): - When: `hostname equals "example.net"` - Then: Bypass cache. - Rules: - Normalization type: Cloudflare (default) - Normalize incoming URLs: True (default) - Boilerplate rules (example sites): - "ACME Flexible SSL" (configuration rule): - When: `URI Path starts with "/.well-known/acme-challenge/"` - Then: SSL mode Flexible. - "Remove WWW" (redirect rule): - When: `Hostname equals "www.example.net"` - Then: Dynamic, `concat("https://example.net", http.request.uri.path)`, 301 (permanent), preserve query string. - "Redirect to other site" (redirect rule) (if this domain doesn't have its own main site): - When: `Hostname equals "example.example"` - Then: Static, `https://example.net)`, 303 (temporary). - Network: - Websockets: On - gRPC: On {% include footer.md %}