एक free SSL certificate आपके visitors और आपकी website के बीच connection को encrypt करता है — passwords, payments और personal data की protection करता है। आप बिना एक पैसा खर्च किए करीब 5 minutes में इसे पा सकते हैं।
TL;DR — Quick version:
- gethttps.com/app/setup खोलें — कोई installation नहीं, कोई account नहीं
- अपना domain name enter करें
- Domain ownership verify करें (अपने server पर एक file रखें या DNS record जोड़ें)
- अपनी certificate files download करें
- अपने server पर install करें (Nginx, Apache, cPanel, WordPress, IIS)
Full guide के लिए आगे पढ़ें जिसमें हर detail शामिल है।
आपको SSL certificate की ज़रूरत क्यों है
शुरू करने से पहले — अगर आप सोच रहे हैं कि क्या आपकी site को सच में SSL चाहिए:
- Browsers HTTP sites को “Not Secure” mark करते हैं — Chrome, Firefox, और Edge address bar में warning दिखाते हैं। Visitors चले जाते हैं।
- Google HTTPS को ranking signal के रूप में use करता है — 2014 से। HTTP sites lower rank करती हैं।
- HTTPS के बिना forms और logins plaintext में data transmit करते हैं — network पर कोई भी passwords, credit card numbers, personal data पढ़ सकता है।
- HTTP pages transit में modify किए जा सकते हैं — ISPs और attackers आपके pages में ads, tracking, या malware inject कर सकते हैं।
- HTTPS free है — इसे use न करने का कोई reason नहीं है।
अगर आपकी site पहले से HTTPS पर है, तो आप renewal पर जा सकते हैं।
Free SSL certificate पाने के 4 तरीके
| Method | Best for | Installation | Auto-renewal | Time |
|---|---|---|---|---|
| GetHTTPS (browser) | कोई भी — कोई install नहीं, server access ज़रूरी नहीं | Manual | नहीं | 5 min |
| आपका hosting provider | cPanel/Plesk वाली shared hosting | Automatic | usually हाँ | 2 min |
| Certbot (CLI) | Root access वाले server admins | Automatic | हाँ | 10 min |
| Cloudflare (CDN) | पहले से Cloudflare use करने वाली sites | Automatic | हाँ | 5 min |
यह guide Method 1 (GetHTTPS) पर focused है क्योंकि यह हर जगह काम करता है — shared hosting, VPS, dedicated server, या कोई भी platform जहाँ आप files upload कर सकते हैं। बाकी methods के लिए, ऊपर दिए गए links देखें।
Method 1: GetHTTPS (recommended — कहीं भी काम करता है)
Prerequisites
- एक registered domain name जो आपके control वाले server की ओर point हो
- इनमें से किसी एक तक access (domain validation के लिए):
- आपके web server का file system — validation file रखने के लिए (HTTP-01 challenge)
- आपके domain की DNS settings — TXT record जोड़ने के लिए (DNS-01 challenge)
- एक modern browser — Chrome, Firefox, Edge, या Safari
कौन सा challenge type चुनें? HTTP-01 ज़्यादातर लोगों के लिए simpler है। DNS-01 wildcard certificates (
*.example.com) के लिए ज़रूरी है। Detailed explanation के लिए हमारी HTTP-01 guide और DNS-01 guide देखें।
Step 1: GetHTTPS खोलें
gethttps.com/app/setup पर जाएँ।
GetHTTPS automatically आपके browser में दो key pairs generate करता है:
- Account key — एक P-256 ECDSA key pair जो आपके Let’s Encrypt account को identify करता है। सभी ACME requests को sign करता है।
- Certificate key — आपके SSL certificate के लिए key pair। Default ECDSA P-256 (recommended) या RSA 2048।
दोनों keys आपके browser में built-in Web Crypto API use करके बनाई जाती हैं। ये सिर्फ browser memory में exist करती हैं और कभी किसी server को नहीं भेजी जातीं — हमारे server को भी नहीं। यह SSL For Free (जो server पर keys generate करता है) या ZeroSSL (जो method के according server-side keys generate कर सकता है) जैसे tools पर major privacy advantage है।
Step 2: अपने domain names जोड़ें
वो domains enter करें जिन्हें आप secure करना चाहते हैं:
| आप क्या चाहते हैं | क्या enter करें | Notes |
|---|---|---|
| Single domain | example.com | सबसे basic setup |
| Domain + www | example.com + www.example.com | ज़्यादातर sites के लिए recommended |
| Wildcard | *.example.com | सभी subdomains cover करता है; DNS-01 ज़रूरी |
| Multiple domains | example.com + blog.example.com + shop.example.com | SAN certificate |
Tip: अगर आप example.com enter करते हैं, तो GetHTTPS आपको www.example.com भी add करने का suggest करता है (और vice versa)। ज़्यादातर sites को दोनों secure करना चाहिए।
Step 3: Domain validation पूरा करें
Let’s Encrypt को verify करना होगा कि आप domain को control करते हैं। दो में से एक method चुनें:
Option A: HTTP-01 challenge (simple, ज़्यादातर लोगों के लिए)
Let’s Encrypt एक token provide करता है। आप अपने web server पर एक specific URL पर एक file रखते हैं।
- GetHTTPS आपको एक filename और file content (एक long token string) दिखाता है
- अपने server पर file बनाएँ:
http://yourdomain.com/.well-known/acme-challenge/TOKEN_FILENAME - File HTTP (port 80) पर accessible होनी चाहिए — चाहे आपकी site पहले से HTTPS use करती हो
- GetHTTPS में Verify पर click करें
File कैसे बनाएँ — platform के अनुसार:
SSH access (Linux पर Nginx/Apache):
# Directory बनाएँ (अगर exist नहीं करती)
mkdir -p /var/www/html/.well-known/acme-challenge/
# Challenge file बनाएँ — GetHTTPS से exactly सही value use करें
echo "TOKEN_CONTENT_SHOWN_IN_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_FILENAME
# Verify करें कि यह accessible है
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_FILENAME
cPanel File Manager:
- File Manager →
public_htmlपर navigate करें .well-knownfolder बनाएँ → उसके अंदरacme-challengeबनाएँ- Token filename के साथ एक नई file बनाएँ, token content paste करें
- Ensure करें कि file world-readable है (permissions 644)
FTP:
- अपनी site root से FTP से connect करें
.well-known/acme-challenge/पर navigate करें (या बनाएँ)- Token content वाली token filename वाली text file upload करें
Common issue: कुछ web servers by default
.well-knownसे files serve नहीं करते। अगर आपको 404 error मिलती है, तो अपने server configuration check करें। Nginx को config मेंlocation ~ /\.well-known { allow all; }की ज़रूरत हो सकती है।
Option B: DNS-01 challenge (wildcard के लिए ज़रूरी)
आप अपने domain की DNS settings में TXT record जोड़ते हैं।
- GetHTTPS आपको एक record name (जैसे,
_acme-challenge.example.com) और एक record value (एक long hash) दिखाता है - अपने DNS provider पर जाएँ और TXT record जोड़ें
- DNS propagation का wait करें (usually 1-5 minutes)
- GetHTTPS में Verify पर click करें
DNS provider quick reference:
| Provider | TXT record कहाँ जोड़ें | TTL setting |
|---|---|---|
| Cloudflare | DNS → Records → Add record → Type: TXT | Auto |
| AWS Route 53 | Hosted zones → your domain → Create record → TXT | 300 |
| GoDaddy | DNS Management → Add → Type: TXT | 1 Hour |
| Namecheap | Domain List → Manage → Advanced DNS → Add new record → TXT | Automatic |
| Google Domains | DNS → Custom records → Manage → Create new record → TXT | Auto |
| DigitalOcean | Networking → Domains → your domain → Add record → TXT | 30 |
Record name: _acme-challenge (कुछ providers automatically आपका domain जोड़ते हैं, कुछ नहीं — preview देखें)
Record value: GetHTTPS में दिखाई गई hash string (exactly वैसे ही copy-paste करें)
Pre-check validation (GetHTTPS का special feature)
Let’s Encrypt को submit करने से पहले, GetHTTPS Google के DNS-over-HTTPS API से public internet से आपके challenge configuration की pre-check करता है। यह इन mistakes को catch करता है:
- गलत file content या permissions
- Port 80 पर file accessible नहीं
- DNS record अभी propagate नहीं हुआ
- Firewall request को block कर रहा है
- Cloudflare proxy challenge को intercept कर रहा है
अगर pre-check fail होता है, तो GetHTTPS आपको exactly बताता है कि क्या गलत है — ताकि आप rate limit attempts waste करने से पहले fix कर सकें।
यह एक ऐसा feature है जो other browser-based tools के पास नहीं है। SSL For Free और ZeroSSL directly CA को submit करते हैं, और आपको errors के बारे में बाद में ही पता चलता है।
Step 4: अपनी certificate files download करें
सभी challenges pass होने के बाद, Let’s Encrypt आपका certificate issue करता है। GetHTTPS आपको चार files देता है:
| File | यह क्या है | आपको इसकी कब ज़रूरत है |
|---|---|---|
privkey.pem | आपकी private key — इसे secret रखें! | हर server |
cert.pem | आपका SSL certificate (सिर्फ end-entity) | Apache, कुछ configs |
chain.pem | Let’s Encrypt का intermediate CA certificate | Apache, कुछ configs |
fullchain.pem | cert.pem + chain.pem combined | Nginx, ज़्यादातर servers |
सभी चार files download करें। Different servers को different combinations चाहिए — सभी चार होने से आप covered हैं। Details के लिए certificate format explanation देखें।
Security:
privkey.pemको securely store करें। जिसके पास यह file है वह आपकी website को impersonate कर सकता है। इसे email न करें, Git में commit न करें, public folder में न रखें।
Step 5: अपने server पर install करें
अपना platform चुनें:
| Platform | Guide | Required files |
|---|---|---|
| Nginx | Full guide → | fullchain.pem + privkey.pem |
| Apache | Full guide → | cert.pem + chain.pem + privkey.pem |
| cPanel | Full guide → | तीनों files की content paste करें |
| WordPress | Full guide → | Hosting पर depend करता है (cPanel/Nginx/Apache) |
| Windows IIS | Full guide → | पहले PFX में convert करें |
| Docker | Full guide → | fullchain.pem + privkey.pem mount करें |
| Plesk | Full guide → | तीनों files की content paste करें |
| AWS | Full guide → | EC2 पर upload या ACM में import करें |
| Node.js | Full guide → | Code में fullchain.pem + privkey.pem |
Quick install — Nginx:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=63072000" always;
root /var/www/html;
index index.html;
}
sudo nginx -t && sudo systemctl reload nginx
Quick install — Apache:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/cert.pem
SSLCertificateKeyFile /etc/ssl/privkey.pem
SSLCertificateChainFile /etc/ssl/chain.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder off
DocumentRoot /var/www/html
</VirtualHost>
sudo apachectl configtest && sudo systemctl reload apache2
Step 6: HTTP को HTTPS पर redirect करें
सारे traffic को encrypted connection use करने के लिए force करें। इसके बिना, http:// पर आने वाले visitors को आपके certificate का benefit नहीं मिलता।
Nginx:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
www/non-www, proxy scenarios और troubleshooting के साथ full redirect guide →
Step 7: Verify करें कि सब कुछ काम कर रहा है
Browser check:
https://yourdomain.comपर जाएँ- Padlock icon पर click करें → “Certificate” या “Connection is secure”
- Verify करें: “Let’s Encrypt” द्वारा issued, ~90 days में expire, domain match करता है
Command line check:
# Certificate details दिखाएँ
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
# Expected output:
# subject=CN=example.com
# issuer=C=US, O=Let's Encrypt, CN=R10
# notBefore=May 8 00:00:00 2026 GMT
# notAfter=Aug 6 00:00:00 2026 GMT
Online check: Comprehensive report के लिए SSL Labs Server Test पर अपना domain enter करें जो certificate chain, protocol support, cipher suites और known vulnerabilities cover करती है।
Mixed content check करें: अपने browser का DevTools (F12) → Console tab खोलें। “Mixed Content” warnings देखें — ये आपके HTTPS page पर HTTP resources हैं। Mixed content कैसे fix करें →
Renewal
Let’s Encrypt certificates 90 days बाद expire हो जाते हैं। Safety margin के लिए day 60 से पहले renew करें।
GetHTTPS के साथ (manual):
- फिर से gethttps.com/app/setup पर जाएँ
- अपने domains फिर से enter करें और नया challenge complete करें
- Server पर certificate files replace करें
- अपना web server reload करें (
sudo systemctl reload nginx)
Certbot के साथ (automatic): अगर आप hands-off renewal चाहते हैं, तो अपने server पर Certbot install करें। कई teams पहले certificate के लिए GetHTTPS और ongoing auto-renewal के लिए Certbot use करती हैं।
Coming soon: 47-day certificates। CA/Browser Forum ने 2029 तक maximum certificate validity को 47 days तक reduce करने के लिए vote किया। इसका आपके लिए क्या मतलब है →
Method 2: आपका hosting provider (available होने पर सबसे easy)
कई hosts free SSL include करते हैं:
| Host | कैसे enable करें | Auto-renewal |
|---|---|---|
| Hostinger | hPanel → Security → SSL | ✅ AutoSSL |
| SiteGround | Site Tools → Security → SSL Manager | ✅ |
| Bluehost | My Sites → Security → SSL | ✅ |
| Namecheap | cPanel → SSL/TLS Status | ✅ AutoSSL |
| GoDaddy | cPanel → SSL/TLS (अगर cPanel hosting) | ✅ |
| DigitalOcean | Built-in नहीं — Certbot या GetHTTPS use करें | ❌ |
| AWS | Load balancer के लिए ACM, EC2 के लिए Certbot | ✅ (ACM) |
अगर आपका host free SSL provide करता है, तो उसे use करें — यह सबसे simple path है। अगर नहीं (या अगर आप ज़्यादा control चाहते हैं), तो GetHTTPS use करें।
Method 3: Certbot (server admins के लिए)
Certbot एक CLI tool है जो आपके server पर Let’s Encrypt certificates को automate करता है। Root access ज़रूरी है।
# Install करें (Ubuntu)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Certificate पाएं + Nginx auto-configure करें
sudo certbot --nginx -d example.com -d www.example.com
# Auto-renewal automatically set हो जाता है
sudo systemctl list-timers | grep certbot
Full GetHTTPS vs Certbot comparison →
Method 4: Cloudflare (proxy-based SSL)
अगर आप Cloudflare को अपने CDN के रूप में use करते हैं, तो Universal SSL free में included है। लेकिन समझें: Cloudflare SSL का मतलब है कि आपका traffic Cloudflare के edge पर decrypt होता है, आपके server पर नहीं। क्या यह आपके लिए okay है? →
Troubleshooting
Challenge file 404 return करती है
- Path check करें: File exactly
/.well-known/acme-challenge/TOKENपर होनी चाहिए — किसी subdirectory में नहीं - Permissions check करें: File web server द्वारा readable होनी चाहिए (chmod 644)
- Nginx: अगर आपका config dotfiles block करता है तो
location ~ /\.well-known { allow all; }जोड़ें - Cloudflare: HTTP-01 challenge के दौरान temporarily DNS को “DNS only” (grey cloud) पर switch करें
- cPanel: Ensure करें कि
.well-knownhidden नहीं है — कुछ file managers dot-directories hide करते हैं
DNS record नहीं मिला
- और wait करें — कुछ DNS providers को propagate होने में 5-15 minutes लगते हैं
- Record name check करें: यह
_acme-challengeहोना चाहिए (आपका domain जोड़े बिना, या जोड़कर — provider पर depend करता है)। GetHTTPS का pre-check confirm करता है। - Record type check करें: TXT होना चाहिए, CNAME या A नहीं
- Manually verify करें:
dig TXT _acme-challenge.yourdomain.com +short
“Too many requests” / rate limit error
Let’s Encrypt per week per registered domain 50 certificates allow करता है। अगर आप इस limit तक पहुँच गए:
- एक week wait करें और फिर try करें
- Testing के लिए staging environment use करें (GetHTTPS development में by default staging use करता है)
- Wasted attempts से बचने के लिए submit करने से पहले अपने challenges pre-check करें
Installation के बाद browser “Not Secure” दिखाता है
- Certificate installed नहीं: Check करें कि आपका server config सही files की ओर point करता है
- Mixed content: आपका page HTTP resources load करता है। Fix guide →
- Redirect active नहीं: HTTP traffic HTTPS पर redirect नहीं हो रहा। Redirect guide →
- Certificate expired: Expiry check करें →
“Certificate chain incomplete” error
आप fullchain.pem के बजाय cert.pem use कर रहे हैं (Nginx) या SSLCertificateChainFile missing है (Apache)। Chain of trust prove करने के लिए server को intermediate certificate की ज़रूरत है।
Other free tools की comparison में GetHTTPS क्यों?
| Feature | GetHTTPS | ZeroSSL | SSL For Free | Certbot |
|---|---|---|---|---|
| Installation | कोई नहीं (browser) | कोई नहीं (web) | कोई नहीं (web) | CLI install ज़रूरी |
| Private key | Browser-generated (Web Crypto) | ⚠️ Server-generated हो सकती है | ⚠️ Server-generated | Server-generated |
| Free certificate limit | Unlimited | 3 | 3 | Unlimited |
| Wildcard (free) | ✅ | ❌ (paid) | ❌ | ✅ |
| Auto-renewal | ❌ | ❌ | ❌ | ✅ |
| Pre-check | ✅ | ❌ | ❌ | ❌ |
| Open source | नहीं | नहीं | नहीं | हाँ (Apache 2.0) |
| Directly Let’s Encrypt से | ✅ | Via ZeroSSL | Via ZeroSSL | ✅ |
सभी free SSL providers की full comparison →
FAQs
क्या मैं सच में free में SSL certificate पा सकता हूँ?
हाँ। Let’s Encrypt Mozilla, Google, EFF और others द्वारा supported एक non-profit Certificate Authority है। यह free domain-validated (DV) certificates issue करता है — वही type जिसके लिए कई companies $50-200/year pay करती हैं। 300 million से ज़्यादा websites Let’s Encrypt use करती हैं, जिसकी global CA market share 63.9% है।
क्या free SSL certificate paid जितना secure है?
हाँ। सभी SSL certificates — free या paid — same TLS encryption use करते हैं। Let’s Encrypt से एक free DV certificate DigiCert के $500 EV certificate जितनी encryption strength provide करता है। सिर्फ एक difference validation level है (CA आपकी identity के बारे में क्या check करता है), encryption नहीं। Detailed comparison →
Free SSL certificate कितने समय तक चलता है?
Let’s Encrypt certificates 90 days के लिए valid हैं। यह short validity intentional है — यह key compromise होने पर damage को limit करती है और automation को encourage करती है। Safety margin के लिए day 60 पर renew करें। Note: 2029 तक, सभी certificates 47 days तक limited होंगे।
क्या मुझे अपने server तक SSH/root access चाहिए?
GetHTTPS के साथ नहीं। आपको इनमें से एक करने की ability चाहिए:
- अपने web server पर एक file रखें (FTP, cPanel File Manager, या किसी भी method से) — HTTP-01 के लिए
- DNS record जोड़ें (अपने domain registrar या DNS provider के through) — DNS-01 के लिए
अगर आपके पास बिल्कुल कोई access नहीं है, तो check करें कि क्या आपका hosting provider अपने control panel से free SSL provide करता है।
क्या मैं free में wildcard certificate पा सकता हूँ?
हाँ। GetHTTPS DNS-01 challenge use करके wildcard certificates (*.example.com) support करता है। यह एक ऐसा feature है जिसे कई competitors (ZeroSSL, SSL For Free) paid plans तक limit रखते हैं। आपको अपने domain की DNS settings तक access चाहिए होगी।
क्या मैं एक certificate से multiple domains secure कर सकता हूँ?
हाँ। GetHTTPS में अपने सभी domains enter करें — per certificate 100 names तक। यह एक SAN (multi-domain) certificate बनाता है। हर domain को अपने खुद के challenge validation की ज़रूरत होती है।
HTTP-01 और DNS-01 challenges में क्या difference है?
HTTP-01: आप अपने server पर एक file रखते हैं। Simple, single domains के लिए काम करता है। Port 80 access ज़रूरी है। DNS-01: आप अपने DNS में TXT record जोड़ते हैं। Wildcard के लिए ज़रूरी। Port 80 blocked होने पर भी काम करता है। Detailed HTTP-01 guide → | DNS-01 guide →
अगर मेरा certificate expire हो जाए तो क्या होता है?
Browsers full-page security warning (“Your connection is not private”) दिखाते हैं। Visitors आपकी site तक securely access नहीं कर सकते, और search engines आपके pages को de-index कर सकते हैं। Expiry कैसे check करें → | Renew कैसे करें →
क्या मैं GetHTTPS से Certbot (या vice versa) switch कर सकता हूँ?
हाँ। Certificate files standard PEM format हैं। आप GetHTTPS से पहला certificate generate कर सकते हैं और बाद में automatic renewal के लिए Certbot install कर सकते हैं। या पहले Certbot use करें और server access के बिना quick re-issue की ज़रूरत होने पर GetHTTPS पर switch करें। Tools mutually exclusive नहीं हैं।