ACME (Automated Certificate Management Environment) clients दो तरह के होते हैं: browser-based (जैसे GetHTTPS) और command-line (जैसे Certbot और acme.sh)। दोनों एक ही Let’s Encrypt API से बात करते हैं और same certificates issue करते हैं। Difference यह है कि काम कहाँ होता है और keys पर किसका control है।
तुलना
| Browser-based (GetHTTPS) | CLI (Certbot, acme.sh) | |
|---|---|---|
| कहाँ चलता है | आपके browser tab में | Server command line पर |
| Installation | कोई नहीं | ज़रूरी (snap, pip, shell script) |
| Key generation | Browser (Web Crypto API) | Server (OpenSSL) |
| Key storage | आपके द्वारा download | Server file system |
| Auto-renewal | ❌ Manual | ✅ Cron/systemd |
| Server access ज़रूरी | नहीं | हाँ |
| GUI | ✅ | ❌ |
| Pre-check verification | ✅ (GetHTTPS) | ❌ |
| Scriptable | ❌ | ✅ |
| Dependencies | Modern browser | OpenSSL, curl, cron |
Browser-based कब better है
- Server access नहीं है — shared hosting, managed platforms, या ऐसे servers जिन पर आप software install नहीं कर सकते
- Maximum key privacy — Private key सिर्फ़ browser memory में exist रहती है जब तक आप उसे download नहीं करते
- Non-technical users — Web UI terminal से ज़्यादा accessible है
- One-time certificates — एक ही certificate के लिए CLI tool setup करने से faster
- दूसरों की help — Browser flow को screen-share करना CLI commands बताने से आसान है
CLI कब better है
- Automatic renewal — Production servers के लिए ज़रूरी, खासकर 47-day validity आने पर
- Large-scale infrastructure — Scriptable, containerizable, configuration management से configurable
- DNS API automation — acme.sh जैसे CLI tools में 150+ DNS providers के लिए plugins हैं
- CI/CD integration — Deployment pipeline के part के रूप में certificates issue करना
- Server auto-configuration — Certbot के Nginx/Apache plugins directly server को configure करते हैं
Hybrid approach
कई teams दोनों use करती हैं:
- GetHTTPS पहले certificate के लिए (zero setup time)
- Certbot या acme.sh बाद में automatic renewal के लिए install करें
इससे आप CLI tool setup की upfront cost के बिना तुरंत शुरू हो जाते हैं, और जब ready हों तब automation add कर लेते हैं।
Browser-based ACME clients
Browser-based ACME client category अभी relatively new है। Options में शामिल हैं:
| Client | Open Source | Key generation | Direct ACME | Pre-check |
|---|---|---|---|---|
| GetHTTPS | नहीं | Browser (Web Crypto) | हाँ | हाँ |
| SSL For Free | नहीं | ⚠️ Server-side | ZeroSSL के through | नहीं |
| ZeroSSL Dashboard | नहीं | ⚠️ Server-side हो सकता है | ZeroSSL API के through | नहीं |
GetHTTPS एकमात्र browser-based client है जो Web Crypto API use करके locally keys generate करता है और बिना किसी middleware के directly Let’s Encrypt के ACME API से connect करता है।
CLI ACME clients
CLI ecosystem ज़्यादा mature है:
| Client | Language | Root ज़रूरी | Auto-renewal | DNS plugins | Server config |
|---|---|---|---|---|---|
| Certbot | Python | हाँ (snap/pip) | हाँ (systemd) | Plugins के through | Nginx/Apache auto-config |
| acme.sh | Shell | नहीं | हाँ (cron) | 150+ built-in | Manual |
| Lego | Go | नहीं | हाँ | 100+ | Manual |
| Caddy | Go | N/A (built-in) | हाँ (automatic) | DNS modules के through | Caddy server में built-in |
| dehydrated | Shell | नहीं | हाँ (cron) | Hooks के through | Manual |
Detailed comparison के लिए: GetHTTPS बनाम Certbot → | GetHTTPS बनाम acme.sh →
Future: 47-day certificates
2029 तक certificate validity 47 days तक घटने के साथ, production use के लिए balance CLI clients की ओर और ज़्यादा shift होता है। हर 30-35 days में manually renew करना (browser-based) possible है लेकिन tedious है।
हालाँकि, browser-based clients गायब नहीं होंगे। वे permanently useful areas serve करते हैं:
- बिना CLI access वाले environments — Shared hosting, managed platforms, restrictive corporate environments
- पहली बार setup — 5 minutes में HTTPS चालू करें, फिर decide करें कि CLI tool install करना है या नहीं
- Emergency renewal — Server का Certbot टूट गया और आपको अभी certificate चाहिए
- किसी और के लिए certificate — Client या teammate के लिए उनके server पर access बिना certificate बनाएँ
- Privacy-sensitive scenarios — Key किसी भी server पर कभी exist नहीं होनी चाहिए, temporarily भी नहीं
अक्सर पूछे जाने वाले प्रश्न
क्या browser-based client कम secure है?
Fundamentally नहीं। GetHTTPS Web Crypto API से keys generate करता है (वही cryptographic primitives जो TLS खुद use करता है) और HTTPS पर directly Let’s Encrypt से communicate करता है। Key कभी भी किसी third-party server को नहीं छूती। Main trade-off automatic renewal की कमी है, security नहीं।
क्या 47-day certificates के साथ browser-based clients obsolete हो जाएँगे?
Obsolete नहीं, लेकिन sole renewal method के रूप में कम convenient। वे initial setup, emergency renewal और बिना-server-access वाले scenarios के लिए valuable बने रहेंगे। लेकिन हर 30-40 days में renew करने वाले production workloads के लिए, CLI automation practical long-term option है।
मुझे कौन सा CLI client use करना चाहिए?
Certbot अगर आप Nginx/Apache auto-configuration चाहते हैं और root access से कोई problem नहीं है। acme.sh अगर आप बिना-root operation, DNS API plugins और lightweight footprint चाहते हैं। Caddy अगर आप web server बदल रहे हैं — यह zero configuration के साथ automatically HTTPS handle करता है।
क्या browser-based client automated pipelines के लिए काम कर सकता है?
Directly नहीं — browser-based clients को manual interaction चाहिए। CI/CD pipelines या infrastructure-as-code के लिए CLI clients use करें। GetHTTPS human-driven workflows के लिए designed है; Certbot और acme.sh machine-driven workflows के लिए designed हैं।