इस ट्यूटोरियल में, आप सीखेंगे Node.js पर SSL सर्टिफिकेट कैसे इंस्टॉल करें बिल्ट-इन https मॉड्यूल का उपयोग करके। Apache या Nginx जैसे वेब सर्वर के विपरीत, Node.js आपके सर्टिफिकेट, प्राइवेट key, और CA चेन को सीधे JavaScript में लोड करता है, इसलिए “इंस्टॉलेशन” आपके एप्लिकेशन कोड के अंदर होता है।
Node.js में CSR कोड जनरेट करें
यदि आपने अभी तक SSL सर्टिफिकेट के लिए आवेदन नहीं किया है, तो पहले आपको एक CSR (Certificate Signing Request) जनरेट करना होगा। CSR एक छोटा एन्कोडेड टेक्स्ट ब्लॉक है जिसमें आपकी संपर्क जानकारी और पब्लिक key होती है, और आप ऑर्डर करते समय इसे Certificate Authority को सबमिट करते हैं। आपके पास दो विकल्प हैं:
- हमारे CSR जेनरेटर का उपयोग करके स्वचालित रूप से CSR जनरेट करें।
- हमारी Node.js में CSR कैसे बनाएँ संबंधी स्टेप-बाय-स्टेप ट्यूटोरियल का पालन करें।
अपने ऑर्डर के दौरान CSR को Certificate Authority को सबमिट करें। CA द्वारा इसे वैलिडेट करने और आपका SSL सर्टिफिकेट जारी करने के बाद, नीचे दिए गए इंस्टॉलेशन के साथ आगे बढ़ें।
Node.js पर SSL सर्टिफिकेट इंस्टॉल करें
चरण 1: अपनी सर्टिफिकेट फाइलें तैयार करें
वैलिडेशन के बाद, Certificate Authority आपको ईमेल के माध्यम से सर्टिफिकेट फाइलें भेजती है। आर्काइव को एक्सट्रैक्ट करें। आपके पास होना चाहिए:
- yourdomain.crt, आपका प्राइमरी डोमेन सर्टिफिकेट।
- yourdomain.ca-bundle, इंटरमीडिएट (और रूट) सर्टिफिकेट जो CA बंडल बनाते हैं।
- yourdomain.key, वह प्राइवेट key जो आपने CSR के साथ जनरेट की थी।
ब्राउज़र्स को इंटरमीडिएट चेन प्राप्त होनी चाहिए, न कि केवल आपका डोमेन सर्टिफिकेट, अन्यथा कुछ क्लाइंट कनेक्शन को अस्वीकार कर देंगे। Node.js में चेन प्रस्तुत करने का सबसे साफ तरीका है अपने सर्टिफिकेट और CA बंडल को एक एकल फुल-चेन फाइल में मिलाना:
cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt
fullchain.crt और yourdomain.key फाइलों को कहीं ऐसी जगह रखें जहाँ आपका ऐप उन्हें पढ़ सके, और प्राइवेट key को केवल उस यूज़र द्वारा पढ़े जाने योग्य रखें जो Node.js चलाता है।
चरण 2: Node.js में एक HTTPS सर्वर बनाएँ
एक सर्वर फाइल बनाएँ। इस डेमो के लिए हम इसे https_server.js नाम देते हैं, लेकिन आप किसी भी फाइलनेम का उपयोग कर सकते हैं। नीचे दिया गया उदाहरण CommonJS (require) का उपयोग करता है, जो हर सपोर्टेड Node.js वर्शन में काम करता है। बोल्ड में दिए गए पाथ को अपने स्वयं के पाथ से बदलें:
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('/path/to/private.key'),
cert: fs.readFileSync('/path/to/fullchain.crt'),
// Recommended TLS hardening (2026): never negotiate below TLS 1.2
minVersion: 'TLSv1.2'
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('Welcome to a Node.js HTTPS servern');
}).listen(443);
आपको बोल्ड में दिए गए हिस्सों को अपनी जानकारी से बदलना होगा:
- /path/to/private.key: आपकी प्राइवेट key फाइल का पूरा पाथ।
- /path/to/fullchain.crt: उस फुल-चेन फाइल का पूरा पाथ जो आपने चरण 1 में बनाई थी।
पोर्ट पर नोट: HTTPS डिफॉल्ट रूप से पोर्ट 443 का उपयोग करता है। इससे बाइंड करने के लिए एलिवेटेड परमिशन की आवश्यकता होती है, इसलिए रिवर्स प्रॉक्सी के पीछे या डेवलपमेंट में आप एक हाई पोर्ट जैसे 8443 पसंद कर सकते हैं। बस listen() को पास किया गया वैल्यू बदल दें।
ES मॉड्यूल पसंद है? अगर आपके प्रोजेक्ट में package.json में "type": "module" है (या एक .mjs फाइल है), तो इसके बजाय import सिंटैक्स का उपयोग करें। TLS विकल्प एक समान हैं:
import https from 'node:https';
import fs from 'node:fs';
const options = {
key: fs.readFileSync('/path/to/private.key'),
cert: fs.readFileSync('/path/to/fullchain.crt'),
minVersion: 'TLSv1.2'
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('Welcome to a Node.js HTTPS servern');
}).listen(443);
विकल्प: ca विकल्प के साथ चेन पास करें। अगर आप फुल-चेन फाइल बनाने के बजाय फाइलों को अलग रखना पसंद करते हैं, तो cert को अपने डोमेन सर्टिफिकेट पर पॉइंट करते हुए छोड़ दें और ca array के माध्यम से इंटरमीडिएट प्रदान करें:
const options = {
key: fs.readFileSync('/path/to/private.key'),
cert: fs.readFileSync('/path/to/yourdomain.crt'),
ca: [
fs.readFileSync('/path/to/intermediate.crt'),
fs.readFileSync('/path/to/ca_bundle.crt')
],
minVersion: 'TLSv1.2'
};
Express का उपयोग कर रहे हैं? अपने Express app को रिक्वेस्ट हैंडलर के रूप में पास करें। सर्टिफिकेट विकल्प ठीक वैसे ही रहते हैं:
const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();
app.get('/', (req, res) => res.send('Hello over HTTPS'));
const options = {
key: fs.readFileSync('/path/to/private.key'),
cert: fs.readFileSync('/path/to/fullchain.crt'),
minVersion: 'TLSv1.2'
};
https.createServer(options, app).listen(443);
चरण 3: अपना Node.js HTTPS सर्वर शुरू करें
ऐप लॉन्च करने के लिए निम्नलिखित कमांड चलाएँ:
node https_server.js
आपका एप्लिकेशन अब HTTPS पर ट्रैफिक सर्व करता है। प्रोडक्शन डिप्लॉयमेंट के लिए, इसे एक प्रोसेस मैनेजर (उदाहरण के लिए PM2 या एक systemd सेवा) के अंतर्गत चलाएँ ताकि यह स्वचालित रूप से रीस्टार्ट हो और रीबूट के बाद भी बना रहे।
चरण 4: अपने SSL इंस्टॉलेशन का परीक्षण करें
हमारे किसी एक SSL चेकर टूल्स का उपयोग करके अपने SSL इंस्टॉलेशन में संभावित त्रुटियों या कमज़ोरियों के लिए परीक्षण करें। आप कमांड लाइन से भी चेन की पुष्टि कर सकते हैं:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
यह सर्टिफिकेट के इश्यूअर और वैलिडिटी तारीखों को प्रिंट करता है, यह पुष्टि करते हुए कि आपका Node.js सर्वर सही सर्टिफिकेट प्रस्तुत कर रहा है।
Node.js के लिए SSL सर्टिफिकेट कहाँ से खरीदें?
SSL Dragon आपकी सभी SSL आवश्यकताओं का स्रोत है। हम अपने संपूर्ण SSL प्रोडक्ट रेंज में मार्केट की कुछ सबसे कम कीमतें ऑफर करते हैं, और हमने मजबूत सुरक्षा और समर्पित सपोर्ट के लिए इंडस्ट्री के सर्वश्रेष्ठ SSL ब्रांड्स के साथ साझेदारी की है। हमारे सभी SSL सर्टिफिकेट Node.js एप्लिकेशन के साथ पूरी तरह कम्पैटिबल हैं।
तेज़ इश्यूएंस, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित सपोर्ट, और 25-दिन की मनी-बैक गारंटी।
अक्सर पूछे जाने वाले प्रश्न
बिल्ट-इन https मॉड्यूल का उपयोग करें। अपनी प्राइवेट key और फुल-चेन सर्टिफिकेट को fs.readFileSync() के साथ पढ़ें, उन्हें key और cert विकल्पों के रूप में https.createServer() को पास करें, और .listen(443) कॉल करें। Node.js आपके लिए TLS हैंडशेक को हैंडल करता है; कॉन्फिगर करने के लिए कोई अलग वेब सर्वर नहीं है।
आपको इंटरमीडिएट चेन को सर्व करने की आवश्यकता है, लेकिन ऐसा करने के लिए आवश्यक रूप से ca विकल्प की आवश्यकता नहीं है। सबसे सरल तरीका है अपने डोमेन सर्टिफिकेट और CA बंडल को एक फुल-चेन फाइल में जोड़ना और cert को उस पर पॉइंट करना। ca array का उपयोग केवल तब करें जब आप सर्टिफिकेट और इंटरमीडिएट को अलग फाइलों में रखना पसंद करते हैं।
Linux और macOS पर, 1024 से नीचे के पोर्ट प्रिविलेज्ड होते हैं। सीधे पोर्ट 443 से बाइंड करने के लिए एलिवेटेड परमिशन की आवश्यकता होती है, इसलिए कई सेटअप Node.js को एक हाई पोर्ट जैसे 8443 पर रिवर्स प्रॉक्सी (Nginx या लोड बैलेंसर) के पीछे चलाते हैं जो TLS को टर्मिनेट या फॉरवर्ड करता है। डेवलपमेंट के लिए, केवल listen() को पास किए गए वैल्यू को बदल दें।
हाँ। CommonJS (require) हर सपोर्टेड Node.js वर्शन में काम करता है, लेकिन यदि आपका प्रोजेक्ट एक ES मॉड्यूल के रूप में कॉन्फिगर किया गया है (package.json में “type”: “module” या एक .mjs फाइल), तो आप इसके बजाय import https from ‘node:https’ का उपयोग कर सकते हैं। दोनों तरीकों में TLS विकल्प एक समान हैं।
अपनी साइट को ब्राउज़र में खोलें और पैडलॉक की जाँच करें, इसे हमारे SSL चेकर टूल्स के माध्यम से चलाएँ, या सर्वर द्वारा प्रस्तुत सर्टिफिकेट का निरीक्षण करने के लिए टर्मिनल से echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com के साथ क्वेरी करें।
निष्कर्ष
Node.js पर SSL सर्टिफिकेट इंस्टॉल करना इस बात पर निर्भर करता है कि आप एक फुल-चेन सर्टिफिकेट बनाएँ, इसे और अपनी प्राइवेट key को fs.readFileSync() के साथ पढ़ें, उन्हें minVersion: ‘TLSv1.2’ के साथ https.createServer() को पास करें, और node https_server.js के साथ ऐप शुरू करें।
पहले सर्टिफिकेट की आवश्यकता है? हमारे SSL सर्टिफिकेट ब्राउज़ करें।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


