जब आप Cloudflare को CDN/proxy के रूप में use करते हैं, तो आपके visitors Cloudflare के edge servers से connect होते हैं। लेकिन Cloudflare और आपके origin server के बीच connection का क्या? बिना certificate के, वह connection unencrypted हो सकता है — जो HTTPS के purpose को defeat कर देता है।
Cloudflare SSL Modes Explained
| Mode | Visitor → Cloudflare | Cloudflare → Origin | Security |
|---|---|---|---|
| Off | HTTP | HTTP | ❌ कोई encryption नहीं |
| Flexible | HTTPS ✅ | HTTP ❌ | ⚠️ Security का illusion |
| Full | HTTPS ✅ | HTTPS (unverified) | ⚠️ Encrypted लेकिन कोई certificate verification नहीं |
| Full (Strict) | HTTPS ✅ | HTTPS (verified) ✅ | ✅ Recommended |
“Flexible” dangerous है। आपके visitors padlock देखते हैं, लेकिन Cloudflare→origin connection plain HTTP है। उस network path पर कोई भी traffic read कर सकता है। हमेशा Full (Strict) use करें।
Let’s Encrypt Certificate के साथ Full (Strict) Setup करना
Best approach: अपने origin पर एक real, publicly trusted certificate install करें और Full (Strict) enable करें।
Step 1: Let’s Encrypt Certificate Get करें
अपने domain के लिए free certificate get करने के लिए GetHTTPS use करें। HTTP-01 challenge आपके origin तक पहुंचने के लिए आपको temporarily Cloudflare proxy disable करना होगा (DNS settings में grey cloud), या DNS-01 use करें जो किसी भी case में काम करता है।
DNS-01 method (कोई proxy change required नहीं):
- GetHTTPS में, DNS-01 challenge choose करें
- Cloudflare DNS में
_acme-challengeTXT record add करें - Verify करें और certificate download करें
HTTP-01 method:
- Cloudflare DNS में, orange cloud → grey cloud (DNS only) पर click करें अपने domain के लिए
- GetHTTPS में HTTP-01 challenge complete करें
- Certificate मिलने के बाद, orange cloud (proxied) फिर से enable करें
Step 2: अपने Origin Server पर Install करें
Certificate को normally Nginx या Apache पर install करें।
Step 3: Cloudflare में Full (Strict) Enable करें
- Cloudflare Dashboard → आपका domain पर जाएं
- SSL/TLS → Overview
- Full (Strict) select करें
Cloudflare अब connect करने से पहले verify करेगा कि आपके origin पर एक valid, trusted certificate है।
Alternative: Cloudflare Origin CA Certificate
Cloudflare अपने खुद के Origin CA certificates provide करता है — free certificates जो सिर्फ Cloudflare द्वारा trusted हैं, directly browsers द्वारा नहीं।
कैसे Get करें
- Cloudflare Dashboard → SSL/TLS → Origin Server
- Create Certificate पर click करें
- Key type (RSA या ECDSA) और validity (15 years तक) choose करें
- Certificate और private key download करें
- अपने origin server पर install करें
Let’s Encrypt की तुलना में Pros और Cons
| Cloudflare Origin CA | Let’s Encrypt (GetHTTPS के through) | |
|---|---|---|
| किसके द्वारा trusted | सिर्फ Cloudflare | सभी browsers (publicly trusted) |
| Validity | 15 years तक | 90 days |
| Auto-renewal required | नहीं (long validity) | हां (हर 60-90 days) |
| Cloudflare के बिना काम करता है | ❌ | ✅ |
| Direct browser access | ❌ (error दिखाता है) | ✅ |
| Cost | Free | Free |
Cloudflare Origin CA use करें अगर आपका origin हमेशा Cloudflare के behind है और आप zero renewal management चाहते हैं।
Let’s Encrypt use करें अगर आप Cloudflare को bypass कर सकते हैं (maintenance, migration), अपने origin तक direct access चाहते हैं, या एक ऐसा certificate चाहते हैं जो everywhere काम करे।
Full (Strict) काम कर रहा है, यह Verify करें
Setup के बाद, test करें कि connection पूरी तरह encrypted है:
- Cloudflare Dashboard → SSL/TLS → Overview में “Full (Strict)” दिखना चाहिए
- अपनी site पर जाएं → padlock में visitors को Cloudflare का certificate दिखना चाहिए
- Directly origin check करें (Cloudflare को bypass करके):
यह आपके Let’s Encrypt (या Origin CA) certificate के साथ एक valid HTTPS response देना चाहिए।curl -I --resolve yourdomain.com:443:YOUR_ORIGIN_IP https://yourdomain.com
FAQ
Flexible mode use क्यों नहीं?
Flexible mode visitor→Cloudflare connection को encrypt करता है लेकिन Cloudflare से आपके origin तक traffic plain HTTP में भेजता है। इसका मतलब है:
- आपका ISP, hosting provider, या Cloudflare के edge और आपके server के बीच network पर कोई भी सब traffic read कर सकता है
- आपके visitors padlock देखते हैं और सोचते हैं कि वे secure हैं, लेकिन backend connection नहीं है
- यह login pages, payment forms, या किसी भी sensitive data के लिए especially dangerous है
क्या मेरे origin certificate को मेरे domain से exactly match करना चाहिए?
Full (Strict) mode के लिए, हां — origin certificate उस domain के लिए valid होना चाहिए जिससे Cloudflare connect हो रहा है। example.com के लिए Let’s Encrypt certificate काम करेगा। एक self-signed certificate या एक different domain का certificate काम नहीं करेगा।
क्या मैं wildcard origin certificate use कर सकता हूं?
हां। आपके origin पर *.example.com के लिए एक wildcard certificate Cloudflare के through proxy किए गए किसी भी subdomain के लिए Full (Strict) के साथ काम करता है।
अगर मेरा origin certificate expire हो जाए तो क्या होता है?
Cloudflare का Full (Strict) mode certificate validity check करता है। अगर आपका origin certificate expire हो जाता है, तो Cloudflare एक secure connection establish नहीं कर सकता और आपकी site 526 error (Invalid SSL Certificate) दिखाती है। इसे prevent करने के लिए expiry monitoring set करें।