“Your connection is not private” सबसे common SSL error है। इसका मतलब है कि आपके browser ने website के SSL certificate में कोई problem पाई और secure connection establish करने से refuse कर दिया। यह error Chrome में NET::ERR_CERT_*, Firefox में “Warning: Potential Security Risk”, या Safari में “This connection is not private” के रूप में दिखाई देती है।
यह guide दोनों sides के लिए solution बताती है: अगर आप एक visitor हैं जो यह error देख रहे हैं, और अगर आप एक website owner हैं जिनके visitors इसे देख रहे हैं।
अगर आप एक Visitor हैं (Quick Fix)
ये steps client-side reasons को fix करते हैं — आपके device की problems, website की नहीं।
1. Page Reload करें
यह error कभी-कभी temporary होती है — TLS handshake के दौरान एक network glitch। F5 या Ctrl+R press करें।
2. अपने Device की Date और Time Check करें
SSL certificates की validity dates होती हैं। अगर आपके computer की clock गलत है, तो browser सोचता है कि certificate expire हो गया है या अभी valid नहीं है। Fix:
- Windows: Settings → Time & language → Set time automatically
- macOS: System Settings → General → Date & Time → Set automatically
- Linux:
sudo timedatectl set-ntp true
3. Incognito/Private Mode Try करें
अगर यह incognito में काम करता है लेकिन normal mode में नहीं, तो कोई browser extension interfere कर रहा है — शायद एक antivirus, VPN, या ad blocker जो HTTPS traffic inspect करता है। Culprit को find करने के लिए एक-एक करके extensions disable करें।
4. Browser Cache और SSL State Clear करें
आपके browser ने पुराना certificate cache किया हो सकता है:
- Chrome: Settings → Privacy → Clear browsing data → Cached images and files
- Windows: Internet Properties → Content → Clear SSL State
- macOS: Keychain Access → domain search करें → cached entries delete करें
5. अपना Network Check करें
Corporate proxies, hotel Wi-Fi captive portals, और कुछ VPNs अपने खुद के certificates inject करते हैं। Try करें:
- VPN disconnect करें और फिर से try करें
- किसी different network पर switch करें (जैसे, mobile hotspot)
- अगर आप hotel/airport Wi-Fi पर हैं तो captive portal से connect करें
6. अपना Browser Update करें
पुराने browsers नए Certificate Authorities पर trust नहीं कर सकते या modern TLS support नहीं कर सकते। Latest version में update करें।
क्या आपको “Proceed anyway” पर click करना चाहिए? सिर्फ तभी जब आप risk समझते हैं और site पर trust करते हैं (जैसे, self-signed cert वाला आपका अपना development server)। Banking, email, या shopping sites पर कभी भी warning bypass न करें।
अगर आप Website Owner हैं (Server Fix)
आपके visitors यह error देख रहे हैं क्योंकि आपके SSL setup में कुछ गड़बड़ है। यहां हर reason का diagnosis और solution बताया गया है।
Reason 1: Certificate Expire हो गया
सबसे common reason। Let’s Encrypt certificates हर 90 days में expire होते हैं।
Diagnosis:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
Fix: अपना certificate renew करें। GetHTTPS के साथ, इसमें 5 minutes लगते हैं। फिर files replace करें और अपना server reload करें।
Reason 2: Certificate Domain से Match नहीं करता
Certificate example.com के लिए issued किया गया था लेकिन आप www.example.com access कर रहे हैं (या vice versa)।
Diagnosis:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
Fix: एक नया certificate get करें जिसमें bare domain और www दोनों included हों। GetHTTPS में, example.com और www.example.com दोनों add करें।
Reason 3: Incomplete Certificate Chain
आपका server intermediate certificate नहीं भेज रहा है। Browser आपके cert से root CA तक trust path नहीं बना सकता।
Diagnosis:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Verify return code"
# "21 (unable to verify the first certificate)" = chain incomplete है
Fix:
- Nginx:
ssl_certificateमेंfullchain.pem(cert.pemनहीं) use करें - Apache:
SSLCertificateChainFile chain.pemadd करें
Reason 4: Self-signed Certificate
Self-signed certificates पर browsers trust नहीं करते — कोई CA उनकी verification नहीं करता।
Fix: Let’s Encrypt (free) या किसी commercial CA से real certificate से replace करें।
Reason 5: Wrong Certificate Serve हो रहा है
अगर आप एक server पर multiple sites host करते हैं, तो wrong certificate serve हो सकता है (SNI misconfiguration)।
Diagnosis:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject
# Check करें कि CN आपके domain से match करता है
Fix: Ensure करें कि हर server block (Nginx) या <VirtualHost> (Apache) में उस domain के लिए सही ssl_certificate है।
Reason 6: TLS Version बहुत पुराना
आपका server सिर्फ obsolete TLS versions (1.0/1.1) support करता है जिन्हें browsers ने drop कर दिया है।
Fix:
# Nginx
ssl_protocols TLSv1.2 TLSv1.3;
# Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Reason 7: Cloudflare “Flexible” SSL Mode
Cloudflare का “Flexible” mode इस error का cause बन सकता है जब origin server पर कोई valid certificate नहीं है।
Fix: अपने origin पर एक certificate install करें (GetHTTPS या Cloudflare Origin CA) और “Full (Strict)” mode पर switch करें।
Reason 8: HSTS ने Bad State Cache की
अगर आपने पहले HSTS headers भेजे थे लेकिन फिर HTTPS टूट गया, तो browsers fallback के रूप में HTTP पर connect करने से refuse करते हैं।
Fix: Valid certificate के साथ HTTPS restore करें। अगर testing कर रहे हैं, तो जब तक आप confident न हों, तब तक छोटा HSTS max-age (जैसे, 300 seconds) use करें।
Error Code Reference
| Chrome Error Code | Meaning | Common Fix |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | Certificate expired या अभी valid नहीं | Certificate renew करें या system clock fix करें |
NET::ERR_CERT_COMMON_NAME_INVALID | Domain certificate से match नहीं करता | सही domain के लिए cert get करें |
NET::ERR_CERT_AUTHORITY_INVALID | Self-signed या untrusted CA | Let’s Encrypt जैसे trusted CA use करें |
NET::ERR_CERT_REVOKED | Certificate revoke कर दिया गया है | नया certificate get करें |
NET::ERR_SSL_PROTOCOL_ERROR | TLS handshake fail | Server TLS config check करें |
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH | कोई common TLS version/cipher नहीं | Server पर TLS 1.2+ enable करें |
SSL_ERROR_HANDSHAKE_FAILURE_ALERT | (Firefox) Handshake rejected | Server certificate और config check करें |
FAQ
क्या “Proceed” / “Accept the risk” पर click करना safe है?
सिर्फ उन sites पर जिन पर आप trust करते हैं और risk समझते हैं — जैसे self-signed certificate वाला आपका अपना development server। Banking, e-commerce, email, या social media sites पर कभी भी warning bypass न करें। Warning इसलिए है क्योंकि कोई आपके traffic को intercept कर सकता है।
मुझे अपनी site पर यह error दिख रही है। इसे सबसे fast कैसे fix करूं?
GetHTTPS पर जाएं, एक नया free certificate get करें, इसे install करें, अपना web server reload करें। 5 minutes लगते हैं। अगर error बनी रहती है, तो error code check करें — यह आपको exactly बताता है कि क्या गलत है (expired, wrong domain, missing chain, etc.)।
Error कुछ devices पर दिखाई देती है लेकिन others पर नहीं
Usually chain of trust की problem — आपका server intermediate certificate नहीं भेज रहा है। कुछ browsers/OS ने पिछली visit से intermediate cache किया है, लेकिन नए devices ने इसे नहीं देखा है। अपने server पर fullchain.pem use करके fix करें।
मेरा certificate valid है लेकिन मुझे अभी भी error दिख रही है
Check करें: domain mismatch (www vs non-www), incomplete chain, HSTS जिसने पिछली failure cache की है, या एक proxy/CDN जो different certificate serve कर रहा है। Server exactly कौन सा certificate present कर रहा है यह देखने के लिए openssl s_client use करें।