Paket 1 · Fondasi DevOpsModul G — Domain, Cloudflare & Reverse Proxy

SSL/HTTPS, Cloudflare Proxy, dan DNS Configuration

Mengatur sertifikat SSL, memilih mode SSL Cloudflare yang benar, serta menghindari mixed content dan redirect loop.

HTTPS melindungi data dan meningkatkan kepercayaan pengguna. Dengan Cloudflare dan reverse proxy, SSL bisa diatur otomatis. Namun konfigurasi yang salah sering menyebabkan redirect loop atau 502.

Sertifikat SSL/TLS

Sertifikat berisi:

  • Nama domain yang dilindungi.
  • Public key.
  • Masa berlaku.
  • Tanda tangan Certificate Authority (CA).

Client memverifikasi sertifikat ke CA tepercaya. Sertifikat kedaluwarsa atau tidak cocok domain akan memicu peringatan browser.

Let's Encrypt

Let's Encrypt adalah CA gratis yang menerbitkan sertifikat melalui protokol ACME.

Metode challengeCara kerjaCocok untuk
HTTP-01File verifikasi di port 80Server dengan public IP
DNS-01Record TXT di DNSServer tanpa public IP, wildcard

NPM dan banyak tool lain menangani permintaan serta perpanjangan otomatis.

Wildcard certificate

Sertifikat wildcard (*.example.com) memerlukan DNS-01 challenge. Ini berguna untuk banyak subdomain tanpa menerbitkan sertifikat satu per satu.

Mode SSL Cloudflare

Cloudflare punya beberapa mode enkripsi antara client–Cloudflare dan Cloudflare–origin.

ModeClient–CloudflareCloudflare–OriginRekomendasi
OffHTTPHTTPJangan dipakai
FlexibleHTTPSHTTPHindari
FullHTTPSHTTPS (sertifikat apa saja)Kurang ketat
Full (strict)HTTPSHTTPS dengan sertifikat validDisarankan

Mengapa Flexible berbahaya?

Dengan Flexible, Cloudflare mengirim trafik ke origin lewat HTTP. Jika origin juga memaksa redirect ke HTTPS, terjadi redirect loop karena Cloudflare terus mengirim HTTP.

Browser --HTTPS--> Cloudflare --HTTP--> Origin --redirect HTTPS--> Cloudflare --HTTP--> ...

Gunakan Full (strict) dan pasang sertifikat valid di origin (Let's Encrypt atau Cloudflare Origin Certificate).

Cloudflare Origin Certificate

Sertifikat ini diterbitkan Cloudflare untuk komunikasi Cloudflare–origin.

  1. Buka SSL/TLS → Origin Server → Create Certificate.
  2. Pilih hostname yang dicakup.
  3. Simpan certificate dan private key.
  4. Pasang di Nginx/NPM.
  5. Set mode SSL ke Full (strict).

Sertifikat ini hanya dipercaya oleh Cloudflare, bukan browser umum. Itu tidak masalah karena browser melihat sertifikat edge Cloudflare.

Pengaturan penting di Cloudflare

PengaturanFungsi
Always Use HTTPSRedirect HTTP ke HTTPS
Automatic HTTPS RewritesPerbaiki tautan http di halaman
HSTSPaksa browser selalu HTTPS
Minimum TLS VersionTolak TLS lama
Opportunistic EncryptionOptimasi koneksi

HSTS bersifat permanen di browser

Aktifkan HSTS hanya setelah HTTPS benar-benar stabil. Browser akan menolak akses HTTP selama masa HSTS, dan sulit dibatalkan di sisi client.

Mixed content

Mixed content terjadi saat halaman HTTPS memuat resource HTTP (gambar, script, CSS). Browser modern memblokirnya.

Cek di DevTools → Console. Perbaikan:

  • Ubah URL resource menjadi https://.
  • Gunakan path relatif.
  • Aktifkan Automatic HTTPS Rewrites di Cloudflare.
  • Pastikan aplikasi menghasilkan URL HTTPS (header X-Forwarded-Proto).

Redirect loop

Penyebab umum:

  1. Cloudflare mode Flexible + origin redirect HTTPS.
  2. Aplikasi memaksa HTTPS tetapi tidak mengenali X-Forwarded-Proto.
  3. Aturan redirect berlapis di NPM dan Cloudflare.

Solusi:

  • Gunakan Full (strict).
  • Teruskan header X-Forwarded-Proto.
  • Pilih satu tempat untuk redirect (Cloudflare atau origin).

Praktik: mengamankan aplikasi

  1. Pastikan DNS app.example.com mengarah ke server.
  2. Di NPM, terbitkan sertifikat Let's Encrypt (DNS challenge bila perlu).
  3. Di Cloudflare, set SSL/TLS ke Full (strict).
  4. Aktifkan Always Use HTTPS.
  5. Uji:
    curl -I http://app.example.com
    curl -I https://app.example.com
    openssl s_client -connect app.example.com:443 -servername app.example.com
  6. Pastikan HTTP redirect ke HTTPS dan sertifikat valid.
  7. Cek DevTools tidak ada mixed content.

Troubleshooting

GejalaCek
ERR_TOO_MANY_REDIRECTSMode SSL, aturan redirect
526 Invalid SSL certificateSertifikat origin tidak valid
525 SSL handshake failedOrigin tidak mendukung TLS
Peringatan sertifikatDomain tidak cocok/kedaluwarsa
Mixed contentURL resource, header proxy

Ringkasan

  • HTTPS memakai sertifikat TLS; Let's Encrypt menyediakan sertifikat gratis.
  • Gunakan Cloudflare Full (strict) dan sertifikat valid di origin.
  • Hindari Flexible karena memicu redirect loop dan trafik tidak terenkripsi.
  • Perhatikan mixed content, HSTS, dan header proxy.

Selanjutnya

Terbitkan layanan tanpa public IP di Cloudflare Tunnel untuk Server Tanpa Public IP.

On this page