এটি বিল্ট ইন ডেভলপমেন্ট সার্ভারের মতো সহজ নয় , তবে আপনার ব্রাউজার এবং বিকাশ সার্ভারের মধ্যে এসএসএলাইফিং মিডলম্যান হিসাবে স্টানেল ব্যবহার করে কিছু কাছাকাছি পাওয়া খুব কঠিন নয়। স্টানেল আপনাকে আপনার মেশিনে একটি হালকা ওজনের সার্ভার সেট আপ করতে দেয় যা একটি কনফিগার করা বন্দরে সংযোগ গ্রহণ করে, এসএসএল দিয়ে মুড়িয়ে দেয় এবং এগুলি অন্য কোনও সার্ভারে প্রেরণ করে। আমরা এটি একটি স্টানেল পোর্ট খোলার জন্য (8443) ব্যবহার করব এবং এটি জ্যাঙ্গো রানসরভারের দৃষ্টান্তে যে কোনও ট্র্যাফিক পাবে তা পেরিয়ে যাব।
প্রথমে আপনার স্টানেল লাগবে যা এখানে ডাউনলোড করা যেতে পারে বা আপনার প্ল্যাটফর্মের প্যাকেজ সিস্টেম (যেমন apt-get install stunnel
:) দ্বারা সরবরাহ করা যেতে পারে । আমি স্ট্যান্ডেলের ৪ র্থ সংস্করণ (উদাহরণস্বরূপ: /usr/bin/stunnel4
উবুন্টুতে) ব্যবহার করব , সংস্করণ ৩ টিও কাজ করবে, তবে বিভিন্ন কনফিগারেশন বিকল্প রয়েছে।
প্রয়োজনীয় কনফিগারেশন ফাইল এবং এসএসএলিশ স্টাফ রাখার জন্য প্রথমে আপনার জ্যাঙ্গো প্রকল্পে একটি ডিরেক্টরি তৈরি করুন।
mkdir stunnel
cd stunnel
এর পরে এসএসএল যোগাযোগের জন্য আমাদের একটি স্থানীয় শংসাপত্র এবং কী তৈরি করতে হবে। এটির জন্য আমরা ওপেনএসএলে পরিণত করি।
কীটি তৈরি করুন:
openssl genrsa 1024 > stunnel.key
এই কীটি ব্যবহার করে এমন শংসাপত্র তৈরি করুন (এটি আপনাকে সার্টিফিকেটে অন্তর্ভুক্ত করা হবে এমন একগুচ্ছ তথ্য জিজ্ঞাসা করবে - যা আপনার ভাল লাগবে তার উত্তর দিন):
openssl req -new -x509 -nodes -sha1 -days 365 -key stunnel.key > stunnel.cert
এখন এগুলিকে একটি একক ফাইলে সংযুক্ত করুন যা স্ট্রান্ডেল তার এসএসএল যোগাযোগের জন্য ব্যবহার করবে:
cat stunnel.key stunnel.cert > stunnel.pem
নিম্নলিখিত বিষয়বস্তুগুলির সাথে dev_https নামে স্টান্ডেলের জন্য একটি কনফিগার ফাইল তৈরি করুন:
pid=
cert = stunnel/stunnel.pem
sslVersion = SSLv3
foreground = yes
output = stunnel.log
[https]
accept=8443
connect=8001
TIMEOUTclose=1
এই ফাইলটি যা জানতে হবে তা স্টানেলকে বলে। বিশেষত, আপনি এটিকে পিড ফাইলটি ব্যবহার না করার জন্য বলছেন, যেখানে শংসাপত্রের ফাইলটি রয়েছে, এসএসএলের কোন সংস্করণ ব্যবহার করা উচিত, এটির অগ্রভাগে চালানো উচিত, যেখানে এটির আউটপুট লগ হওয়া উচিত, এবং এটি পোর্টের সাথে সংযোগ গ্রহণ করা উচিত ৮৪৩৩ এবং এটিকে 8001 পোর্টে শাটল করুন The শেষ প্যারামিটারটি (টিআইএমইইউস্লোস) এটি কোনও ক্রিয়াকলাপ না করে 1 সেকেন্ড পেরিয়ে যাওয়ার পরে সংযোগটি স্বয়ংক্রিয়ভাবে বন্ধ করতে বলে।
এখন আপনার জ্যাঙ্গো প্রকল্প ডিরেক্টরিতে ব্যাক আপ করুন (এটিতে ম্যানেজ.পি সহ একটি):
cd ..
এখানে আমরা রানসারভার নামে একটি স্ক্রিপ্ট তৈরি করব যা স্টানেল এবং দুটি জ্যাঙ্গো ডেভলপমেন্ট সার্ভার চালাবে (একটি সাধারণ সংযোগের জন্য এবং একটি এসএসএল সংযোগের জন্য):
stunnel4 stunnel/dev_https &
python manage.py runserver&
HTTPS=1 python manage.py runserver 8001
একে একে একে একে একে একে ভাঙ্গি:
- লাইন 1: স্ট্যান্ডেল শুরু করে এবং এটি সুনির্দিষ্টভাবে তৈরি করা কনফিগারেশন ফাইলের দিকে নির্দেশ করুন। এটিতে ৮৪৪৪ বন্দরটিতে টানাপোড়া শোনার সুযোগ রয়েছে, এসএসএলে প্রাপ্ত কোনও সংযোগ এটি মোড়ানো এবং 8001 বন্দরে বরাবর দিয়ে দিন
- লাইন 2: একটি সাধারণ জ্যাঙ্গো রানসরভার দৃষ্টান্ত শুরু করে (8000 পোর্টে)
- লাইন 3: আরেকটি জ্যাঙ্গো রানসরভার দৃষ্টান্তটি (8001 পোর্টে) আরম্ভ করে এবং সমস্ত আগত সংযোগগুলি যেমন এইচটিটিপিএস ব্যবহার করে সম্পাদন করা হচ্ছে তার জন্য এটি কনফিগার করে।
আমরা স্রেফ তৈরি করা রানস্ক্রিপ্ট ফাইলটি এটিকে সম্পাদনযোগ্য করে তুলুন:
chmod a+x runserver
এখন আপনি যখন আপনার বিকাশ সার্ভারটি চালাতে চান তখন কেবল ./runserver
আপনার প্রকল্প ডিরেক্টরি থেকে চালিত করুন । এটি চেষ্টা করার জন্য, কেবলমাত্র আপনার ব্রাউজারটি HTTP: // লোকালহোস্ট: 8000 এ সাধারণ HTTP ট্র্যাফিকের জন্য এবং HTTPS ট্র্যাফিকের জন্য https: // লোকালহোস্ট: 8443 এ নির্দেশ করুন । মনে রাখবেন যে আপনি ব্রাউজারটি অবশ্যই ব্যবহার করা শংসাপত্র সম্পর্কে অভিযোগ করবে এবং আপনাকে একটি ব্যতিক্রম যুক্ত করতে হবে বা অন্যথায় ব্রাউজারটি চালিয়ে যাওয়ার জন্য স্পষ্টভাবে নির্দেশ দিন। এটি কারণ আপনি নিজের শংসাপত্র তৈরি করেছেন এবং এটি কে সে সম্পর্কে সত্য বলার জন্য এটি ব্রাউজারের দ্বারা বিশ্বাসযোগ্য নয়। এটি উন্নয়নের জন্য সূক্ষ্ম, তবে অবশ্যই এটি উত্পাদন জন্য কাটা হবে না।
দুর্ভাগ্যক্রমে, আমার মেশিনে যখন আমি সিটিআরএল-সি মারি তখন এই রানসারভার স্ক্রিপ্টটি ভালভাবে বেরিয়ে আসে না। আমাকে প্রক্রিয়াগুলি নিজেই মেরে ফেলতে হবে - কারও কাছে এটি ঠিক করার জন্য কোনও পরামর্শ আছে?
তথ্যসূত্রের জন্য মাইকেল গিলের পোস্ট এবং জাঙ্গো-ওয়েভের উইকি প্রবেশের জন্য ধন্যবাদ।