If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
Node.js का tls
(Transport Layer Security) module secure communication के लिए उपयोग किया जाता है। यह module आपको encrypted network connections बनाने और manage करने देता है।
tls module का उपयोग secure communication के लिए महत्वपूर्ण है, खासकर जब आप sensitive data को transmit कर रहे हों। इस ब्लॉग में हम Node.js के tls module के बारे में विस्तार से समझेंगे और इसके उपयोग के तरीकों को examples के माध्यम से देखेंगे।
tls
module आपको secure TCP/TLS
connections बनाने की सुविधा देता है। यह module SSL (Secure Sockets Layer) और TLS protocols पर आधारित है। यह protocols data encryption के साथ-साथ authentication भी provide करते हैं, जिससे data को unauthorized access से बचाया जा सकता है।
●●●
TLS connections को setup करने के लिए client और server के बीच में एक handshake होता है। इस process के दौरान -
Recognition of client & server : Server client को अपनी identity prove करने के लिए certificate भेजता है।
Exchanged keys : Client और Server symmetric encryption keys exchange करते हैं।
Establish secure connection : एक बार handshake complete होने के बाद, data encrypted form में transmit किया जाता है।
●●●
चलिए एक simple TLS server बनाते हैं -
सबसे पहले, आपको एक self-signed certificate generate करना होगा। यह development purpose के लिए है।
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
यह command दो files generate करेगा : key.pem
(private key) और cert.pem
(certificate)।
const tls = require('tls');
const fs = require('fs');
// Server options setup
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
// TLS server create karein
const server = tls.createServer(options, (socket) => {
console.log('New connection established');
socket.write('Welcome to the secure server!\n');
socket.on('data', (data) => {
console.log(`Received: ${data}`);
socket.write(`You said: ${data}`);
});
socket.on('end', () => {
console.log('Connection ended');
});
});
// Server ko listen karwayein
server.listen(8000, () => {
console.log('TLS server is running on port 8000');
});
Explanation :
tls.createServer()
: यह method एक secure server create करता है। options object में key और cert properties होती हैं, जो आपके private key और certificate को specify करती हैं।
Socket Events : Socket पर अलग-अलग events handle किए जाते हैं जैसे कि data और end।
●●●
अब एक TLS client create करें जो server से connect हो सके -
const tls = require('tls');
const fs = require('fs');
// Client options setup.
const options = {
host: 'localhost',
port: 8000,
rejectUnauthorized: false // Self-signed certificate ke liye
};
// Client connection create karein.
const client = tls.connect(options, () => {
console.log('Client connected to server');
client.write('Hello, server!');
});
// Data receive karein.
client.on('data', (data) => {
console.log(`Server replied: ${data}`);
client.end(); // Connection ko close karein
});
// Error handling.
client.on('error', (err) => {
console.error(`Connection error: ${err.message}`);
});
Explanation :
tls.connect()
: यह method secure connection establish करने के लिए use होता है। options object में host और port define होते हैं।
rejectUnauthorized
: false: यह option self-signed certificates के लिए useful है। इसे production environment में use नहीं करना चाहिए।
●●●
TLS connections को customize करने के लिए कई options होते हैं -
ca : Certificate authority chain specify करता है। यह client और server दोनों के लिए verify करता है।
ciphers : Encryption algorithms को specify करता है। Default ciphers को override करने के लिए use होता है।
honorCipherOrder : Server को cipher suite select करने की अनुमति देता है, बजाय client के।
passphrase : Private key के लिए passphrase set करता है।
●●●
TLS connections में error handling महत्वपूर्ण होती है। आप error
events को handle कर सकते हैं -
server.on('tlsClientError', (error, socket) => {
console.error(`TLS error: ${error.message}`);
});
client.on('error', (err) => {
console.error(`Connection error: ${err.message}`);
});
ECONNRESET : Connection अचानक बंद हो गया।
UNABLE_TO_VERIFY_LEAF_SIGNATURE : Self-signed certificate verify नहीं हो पाया।
CERT_HAS_EXPIRED : Certificate की validity समाप्त हो गई है।
Certificates : हमेशा trusted certificate authorities से certificates लें।
Encryption : Latest encryption algorithms का उपयोग करें।
Validation : Certificates को हमेशा validate करें और rejectUnauthorized: false
को production में avoid करें।
Regular Updates : Node.js और अन्य dependencies को हमेशा update रखें।
●●●
Node.js का tls
module secure connections को handle करने का एक powerful tool है। इसे सही तरीके से implement करने से आपकी applications की security और reliability बढ़ सकती है।
आशा है कि यह ब्लॉग आपको tls module को समझने और effectively उपयोग करने में मदद करेगा।
Happy Coding :)
Loading ...