सभी SSL articles SSL और Certificates

Self-Signed vs CA-Signed SSL Certificates

एक self-signed certificate वह है जो आप खुद create करते हैं — आप अपने खुद के Certificate Authority के रूप में act करते हैं। एक CA-signed certificate एक trusted Certificate Authority (जैसे Let’s Encrypt या DigiCert) द्वारा issue और sign किया जाता है जिस पर browsers पहले से trust करते हैं।

Practical difference: self-signed certificates browser security warnings trigger करते हैं। CA-signed certificates नहीं करते।

Comparison

Self-signedCA-signed
Created byआप (openssl command)एक trusted CA
Browser trustNo Warning: “Not trusted”Yes Padlock icon
Encryption strengthSameSame
CostFreeFree (Let’s Encrypt) या paid
ValidationNone — आप खुद vouch करते हैंCA domain/org verify करता है
Use caseDevelopment, internal, testingProduction websites
RenewalManual (आप validity set करते हैं)90 days (LE) या 1 year (paid)
Man-in-the-middle protectionWeak — users warnings पर click-through करने के आदीStrong — warnings सिर्फ real problems पर

Self-signed certificates warnings क्यों show करते हैं

Browsers certificates पर इस basis पर trust करते हैं कि किसने sign किए हैं। आपका OS और browser ~100-150 trusted root CAs की list के साथ आते हैं। जब कोई server इनमें से किसी CA द्वारा signed certificate present करता है, तो browser padlock show करता है।

एक self-signed certificate किसी भी trusted CA द्वारा signed नहीं है — यह अपनी own private key से signed है। Browser के पास verify करने का कोई way नहीं है कि certificate legitimate है, इसलिए यह warning show करता है। यह correct behavior है — CA verification के बिना, कोई भी google.com claim करने वाला certificate create कर सकता था।

Self-signed certificates कब use करें

Internal services

ऐसी services जो internet पर exposed नहीं हैं — internal dashboards, monitoring tools, database admin panels। आपकी team self-signed CA को अपने trust stores में add कर सकती है।

Development और testing

Local development के लिए quick HTTPS जब आप mkcert set up नहीं करना चाहते। Browser warning annoying है लेकिन testing के लिए काम करती है।

IoT और embedded devices

ऐसे devices जो एक known server के साथ communicate करते हैं और certificate pin कर सकते हैं — कोई browser trust store involved नहीं।

Air-gapped networks

बिना internet access वाले networks जहाँ Let’s Encrypt का ACME protocol reach नहीं कर सकता। Self-signed only option है।

Self-signed certificates कब use न करें

कोई भी public-facing website

Users एक scary warning देखते हैं और leave कर जाते हैं। Search engines untrusted certificates वाले HTTPS pages crawl नहीं कर सकते। जब Let’s Encrypt certificates free हैं, तो self-sign करने का कोई reason नहीं है।

User data handle करने वाली कोई भी site

Self-signed certificates users को security warnings पर click-through करने की habit डालते हैं — good security के opposite। जब कोई real attack warning trigger करता है, तो “Proceed anyway” click करने के आदी users को पता नहीं चलेगा।

Self-signed certificate कैसे create करें

# ECDSA (recommended)
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=internal.example.com" \
  -addext "subjectAltName=DNS:internal.example.com,IP:10.0.0.5"

# RSA
openssl req -x509 -newkey rsa:2048 \
  -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=internal.example.com"

Resulting cert.pem और key.pem को अपने server config में use करें। Note: fullchain.pem और chain.pem ज़रूरी नहीं — self-signed certs के साथ कोई chain नहीं होती।

हर scenario के लिए better alternatives

ScenarioSelf-signed के बजाय, use करें
Production websiteGetHTTPS से Let’s Encrypt — free, trusted, 5 minutes
Local developmentmkcert — locally trusted, कोई warnings नहीं
Internal servicesLet’s Encrypt (अगर internet-accessible है) या private CA
Testing/stagingLet’s Encrypt staging environment — unlimited test certs

Self-signed certificates तब sense बनाते थे जब SSL certificates $100+/year cost करते थे। अब जब Let’s Encrypt free है, तो truly isolated environments से beyond किसी भी चीज़ के लिए self-sign करने का hardly कोई reason है।

FAQ

क्या self-signed certificate CA-signed से कम secure है?

Encryption same है — same algorithms, same key strengths। Difference trust का है: एक CA-signed certificate एक trusted third party के through server की identity prove करता है। एक self-signed certificate कुछ prove नहीं करता — कोई भी किसी भी domain के लिए एक create कर सकता है। Security issue crypto नहीं है; यह authentication की lack है।

क्या मैं browsers को अपने self-signed certificate trust करा सकता हूँ?

हाँ, उन machines पर जिन्हें आप control करते हैं। Certificate (या इसे sign करने वाले self-signed CA) को OS/browser trust store में import करें। यही mkcert automate करता है। लेकिन आप दूसरे लोगों के browsers को इस पर trust नहीं करा सकते — इसके लिए real CA चाहिए।

मेरे hosting provider ने मुझे self-signed certificate दिया। क्या यह okay है?

नहीं, public website के लिए। अपने provider से free Let’s Encrypt enable करने के लिए कहें (ज़्यादातर hosts इसे support करते हैं)। अगर वे नहीं करते, तो खुद trusted certificate get करने के लिए GetHTTPS use करें।

अपना CA क्यों नहीं बनाते?

आप बना सकते हैं, लेकिन browsers इस पर तब तक trust नहीं करेंगे जब तक आप browser trust stores में include होने की years-long, expensive process से नहीं गुज़रते। एक private CA internal infrastructure के लिए काम करता है (आपकी team root cert install करती है), लेकिन public websites के लिए नहीं। Public sites के लिए, Let’s Encrypt जैसे trusted CA use करें।

संबंधित लेख

SSL और Certificates 2026-05-07
Certificate Authority (CA) क्या है?
Certificate Authority website की identity prove करने के लिए SSL certificates sign करता है। जानें CAs कैसे काम करते हैं, trust model, major CAs, और Let's Encrypt ने industry कैसे बदली।
डिप्लॉयमेंट 2026-05-08
Localhost के लिए HTTPS: Local Development के लिए SSL Certificate
mkcert के साथ localhost पर trusted HTTPS set करें -- कोई browser warning नहीं। mkcert setup, self-signed certificate, और Let's Encrypt localhost के लिए certificate क्यों issue नहीं कर सकता included है।
शुरुआत करें 2026-05-08
Free SSL certificate कैसे पाएं (step-by-step guide)
Let's Encrypt से 5 minutes में free SSL certificate पाएं — कोई software install नहीं, कोई account नहीं बनाना। 4 methods, दोनों challenge types, 6 platforms पर installation, और troubleshooting cover करने वाली complete guide।
अपने browser में मुफ़्त SSL certificate पाएँ
कोई installation नहीं, कोई account नहीं। आपकी private key कभी आपका device नहीं छोड़ती।
अपना certificate पाएँ