আজকের হিসাবে, 10 ই অক্টোবর 2014 , হেরোকু সিডার স্ট্যাক এবং এক্সপ্রেসজেএস ~ 3.4.4 ব্যবহার করে এখানে কোডের একটি কার্যকারী সেট রয়েছে।
এখানে মনে রাখার মূল বিষয়টি হ'ল আমরা হেরোকুতে নিযুক্ত করছি। এনক্রিপ্ট হওয়া ট্র্যাফিক আপনার নোড অ্যাপে পৌঁছানোর আগে লোড ব্যালেন্সারে এসএসএল সমাপ্তি ঘটে। রেক.হেডারদের ['এক্স-ফরওয়ার্ড-প্রোটো'] === 'https' দিয়ে অনুরোধ করার জন্য https ব্যবহার করা হয়েছিল কিনা তা পরীক্ষা করা সম্ভব ।
অন্যান্য পরিবেশে হোস্টিং করা সম্ভব হলে অ্যাপ্লিকেশন ইত্যাদির মধ্যে স্থানীয় এসএসএল শংসাপত্রগুলি নিয়ে আমাদের নিজেদের উদ্বিগ্ন হওয়ার দরকার নেই। তবে আপনার নিজের শংসাপত্র, সাব-ডোমেন ইত্যাদি ব্যবহার করে প্রথমে হিরোকু অ্যাড-অনগুলির মাধ্যমে একটি এসএসএল অ্যাড-অন প্রয়োগ করা উচিত should
তারপরে এইচটিটিপিএস ব্যতীত অন্য যে কোনও কিছু থেকে এইচটিটিপিএসে পুনঃনির্দেশ করার জন্য কেবল নিম্নলিখিতটি যুক্ত করুন। এটি উপরে গৃহীত উত্তরের খুব কাছাকাছি, তবে:
- নিশ্চিত করে যে আপনি "অ্যাপ.ইউজ" ব্যবহার করেছেন (সমস্ত ক্রয়ের জন্য, কেবল পান না)
- স্পষ্টভাবে ফোর্স এসএসএল যুক্তিকে একটি ঘোষিত ফাংশনে বহিরাগত করে
- "অ্যাপ" ব্যবহার করে '*' ব্যবহার করবেন না - এটি পরীক্ষার সময় এটি ব্যর্থ হয়েছিল।
- এখানে, আমি কেবল প্রযোজনায় এসএসএল চাই। (আপনার প্রয়োজন অনুসারে পরিবর্তন করুন)
কোড:
var express = require('express'),
env = process.env.NODE_ENV || 'development';
var forceSsl = function (req, res, next) {
if (req.headers['x-forwarded-proto'] !== 'https') {
return res.redirect(['https://', req.get('Host'), req.url].join(''));
}
return next();
};
app.configure(function () {
if (env === 'production') {
app.use(forceSsl);
}
// other configurations etc for express go here...
}
সেলসজেএস (0.10.x) ব্যবহারকারীদের জন্য নোট। আপনি এপিআই / নীতিগুলির অভ্যন্তরে কেবল একটি নীতি (প্রয়োগকারী এসএসএল.জেএস) তৈরি করতে পারেন:
module.exports = function (req, res, next) {
'use strict';
if ((req.headers['x-forwarded-proto'] !== 'https') && (process.env.NODE_ENV === 'production')) {
return res.redirect([
'https://',
req.get('Host'),
req.url
].join(''));
} else {
next();
}
};
তারপরে কনফিগারেশন / পলিসি.জেএস এর সাথে অন্য কোনও নীতি যেমন উল্লেখ করুন:
'*': ['প্রমাণীকৃত', 'প্রয়োগ এসএসএল']
app.get('*',function(req,res,next){ if(req.headers['x-forwarded-proto']!='https') res.redirect('https://mypreferreddomain.com'+req.url) else next() })