আমি নোডের জন্য এক্সপ্রেস.জেএসএইচটিপিএসে কাজ করার চেষ্টা করছি, এবং আমি এটি বের করতে পারি না।
এটি আমার app.js
কোড।
var express = require('express');
var fs = require('fs');
var privateKey = fs.readFileSync('sslcert/server.key');
var certificate = fs.readFileSync('sslcert/server.crt');
var credentials = {key: privateKey, cert: certificate};
var app = express.createServer(credentials);
app.get('/', function(req,res) {
res.send('hello');
});
app.listen(8000);
আমি যখন এটি চালনা করি তখন মনে হয় কেবলমাত্র এইচটিটিপি অনুরোধের প্রতিক্রিয়া দেখাবে।
আমি সহজ ভ্যানিলা node.js
ভিত্তিক এইচটিটিপিএস অ্যাপ লিখেছি :
var fs = require("fs"),
http = require("https");
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var credentials = {key: privateKey, cert: certificate};
var server = http.createServer(credentials,function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(8000);
আর যখন আমি এই অ্যাপটি চালাতে, এটা করে HTTPS দ্বারা অনুরোধ সাড়া। নোট করুন যে আমি fs ফলাফল সম্পর্কিত বিষয়ে স্ট্রিং () মনে করি না, কারণ আমি উভয়ের সংমিশ্রণ ব্যবহার করেছি এবং এখনও কোনও বুয়েনো নেই।
যোগ করুন সম্পাদনা করুন:
উত্পাদন সিস্টেমগুলির জন্য, আপনি সম্ভবত আপনার নোডেজ অ্যাপ্লিকেশনটিতে প্রক্সি অনুরোধগুলিতে Nginx বা HAProxy ব্যবহার করা ভাল। আপনি এসএসএল অনুরোধগুলি পরিচালনা করতে nginx সেটআপ করতে পারেন এবং আপনার নোড অ্যাপ.জেএস-তে ঠিক এইচটিপি বলতে পারেন।
সম্পাদনা করুন (4/6/2015)
এডাব্লুএস ব্যবহার করার সিস্টেমগুলির জন্য, এসএসএল টার্মিনেশন পরিচালনা করতে আপনি ইসি 2 ইলাস্টিক লোড ব্যালান্সার ব্যবহার করা ভাল, এবং আপনার ইসি 2 ওয়েব সার্ভারগুলিতে নিয়মিত এইচটিটিপি ট্র্যাফিকের অনুমতি দিন। আরও সুরক্ষার জন্য, আপনার সুরক্ষা গোষ্ঠীটি সেট আপ করুন যেমন কেবল ELB কেই ইসি 2 উদাহরণগুলিতে এইচটিটিপি ট্রাফিক প্রেরণের অনুমতি দেওয়া হয়েছে যা আপনার মেশিনগুলিকে আঘাত করা থেকে বাহ্যিক এনক্রিপ্ট করা এইচটিটিপি ট্র্যাফিককে আটকাবে।