সেন্টোস-আরএইচএল 8 এ হিচ ব্যবহার করে বার্নিশ ক্যাশের জন্য কীভাবে এইচটিটিপিএস সক্ষম করবেন


বার্নিশ ক্যাশে এসএসএল/টিএলএস এবং 443 পোর্টের সাথে যুক্ত অন্যান্য প্রোটোকলের জন্য নেটিভ সাপোর্টের অভাব রয়েছে you আপনি যদি নিজের ওয়েব অ্যাপ্লিকেশনটির কার্যকারিতা বাড়াতে বার্নিশ ক্যাশে ব্যবহার করেন, আপনাকে কাজ করার জন্য একটি এসএসএল/টিএলএস সমাপ্তি প্রক্সি নামে পরিচিত একটি সফ্টওয়্যারের অন্য অংশটি ইনস্টল ও কনফিগার করতে হবে work এইচটিটিপিএস সক্ষম করতে বার্নিশ ক্যাশে বরাবর।

হিচ হ'ল একটি মুক্ত ওপেন সোর্স, লিভভ-ভিত্তিক, এবং বার্নিশ ক্যাশের জন্য নকশাকৃত স্কেলযোগ্য এসএসএল/টিএলএস প্রক্সি যা বর্তমানে লিনাক্স, ওপেনবিএসডি, ফ্রিবিএসডি, এবং ম্যাকোএসএক্স-এ কাজ করে। এটি 443 পোর্টে এইচটিটিএস/এসএসএল সংযোগগুলি সমাপ্ত করে (এইচটিটিপিএস সংযোগের জন্য ডিফল্ট পোর্ট) এবং এনক্রিপ্ট করা ট্র্যাফিকটি বার্নিশ ক্যাশে ফরোয়ার্ড করে, তবে এটি অন্যান্য ব্যাকেন্ডের সাথেও কাজ করা উচিত।

এটি TLS1.2 এবং TLS1.3 এর জন্য সমর্থন করে এবং লিগ্যাসি টিএলএস 1.0/1.1 সমর্থন করে, HTP/2 এর জন্য ALPN (অ্যাপ্লিকেশন-স্তর প্রোটোকল আলোচনা) এবং NPN (নেক্সট প্রোটোকল আলোচনা) সমর্থন করে, ক্লায়েন্টের আইপি/পোর্টটিকে ব্যাকএন্ডে সিগন্যাল করার জন্য একটি ProXY প্রোটোকল , ওয়াইল্ডকার্ড শংসাপত্রের সাথে এবং ছাড়াই মূলত ইউনিক্স ডোমেন সকেট সংযোগগুলি, এসএনআই (সার্ভার নেম ইঙ্গিত)। অতিরিক্তভাবে, এটি বৃহত্তর ইনস্টলেশনগুলির জন্য ভাল কাজ করে যার জন্য 15,000 শোনার সকেট এবং 500,000 শংসাপত্র প্রয়োজন।

এনগিনেক্স এবং অ্যাপাচি এইচটিটিপি সার্ভারগুলির জন্য বার্নিশ ক্যাশে ইনস্টল করার বিষয়ে আমাদের দুটি পূর্ববর্তী নিবন্ধের ধারাবাহিকতা হিসাবে, এই গাইডটি সেন্টোস/আরএইচএল 8-তে হিচ টিএলএস প্রক্সি ব্যবহার করে বার্নিশ ক্যাশের জন্য এইচটিটিপিএস সক্ষম করতে দেখায়।

এই গাইডটি ধরে নিয়েছে যে আপনি এনগিনেক্স বা অ্যাপাচি ওয়েব সার্ভারের জন্য বার্নিশ ইনস্টল করেছেন, অন্যথায়, দেখুন:

  • সেন্টোস/আরএইচইএল 8 এ এনগিনেক্স ওয়েব সার্ভারের জন্য বার্নিশ ক্যাশে 6 কীভাবে ইনস্টল করবেন
  • CentOS/RHEL 8
  • এ আপাচি ওয়েব সার্ভারের জন্য বার্নিশ ক্যাশে 6 কীভাবে ইনস্টল করবেন

পদক্ষেপ 1: সেন্টোস/আরএইচএল 8 এ হিচ ইনস্টল করুন

1. এইচইচ প্যাকেজটি ইপিল (এন্টারপ্রাইজ লিনাক্সের জন্য অতিরিক্ত প্যাকেজগুলি) সংগ্রহস্থলে সরবরাহ করা হয়েছে। এটি ইনস্টল করতে, প্রথমে আপনার সিস্টেমে EPEL সক্ষম করুন এবং তারপরে প্যাকেজটি ইনস্টল করুন। আপনার যদি ওপেনএসএসএল প্যাকেজ ইনস্টল না করা থাকে তবে এটিও ইনস্টল করুন।

# dnf install epel-release
# dnf install hitch openssl

২. প্যাকেজ ইনস্টলেশনটি সম্পূর্ণ হয়ে গেলে, হিচকে কাজ করতে আপনাকে বার্নিশ ক্যাশে কনফিগার করতে হবে। আপনার এসএসএল/টিএলএস শংসাপত্রগুলি এবং ব্যান্ডএন্ড হিসাবে বার্নিশ ব্যবহার করতে আপনাকে হিচকে কনফিগার করতে হবে। হিচির মূল কনফিগারেশন ফাইলটি /etc/hitch/hitch.conf এ অবস্থিত, যা নীচে ব্যাখ্যা করা হয়েছে।

পদক্ষেপ 2: হিচির জন্য বার্নিশ ক্যাশে কনফিগার করা

৩. পরবর্তী, হিচ সহ যোগাযোগের জন্য বার্নিশকে প্রক্সি প্রোটোকল সমর্থন ব্যবহার করে একটি অতিরিক্ত পোর্ট (আমাদের ক্ষেত্রে ৮৪৩৩) শোনার জন্য সক্ষম করুন।

সুতরাং সম্পাদনার জন্য বার্নিশ সিস্টেমযুক্ত পরিষেবা ফাইলটি খুলুন।

# systemctl edit --full varnish

এক্সিকিস্টার্ট রেখার সন্ধান করুন এবং 127.0.0.1:8443,proxy মান সহ একটি অতিরিক্ত -a পতাকা যুক্ত করুন। 127.0.0.1:8443 এর মান ব্যবহার করা মানে বার্নিশ কেবল অভ্যন্তরীণ সংযোগ গ্রহণ করবে (একই সার্ভারে চলমান প্রক্রিয়াগুলি থেকে এই ক্ষেত্রে হিচকি) তবে বাহ্যিক সংযোগগুলি নয়।

ExecStart=/usr/sbin/varnishd -a :80 -a 127.0.0.1:8443,proxy -f /etc/varnish/default.vcl -s malloc,256m 

ফাইলটি সংরক্ষণ করুন এবং তারপরে সর্বশেষ পরিবর্তনগুলি প্রয়োগ করতে বার্নিশ পরিষেবাটি পুনরায় চালু করুন।

# systemctl restart varnish

পদক্ষেপ 3: এসএসএল/টিএলএস শংসাপত্র প্রাপ্ত

৪. এই বিভাগে, আমরা ব্যাখ্যা করব যে কীভাবে হিচ-এর অধীনে ব্যবহৃত হতে হবে এসএসএল/টিএলএস শংসাপত্র বান্ডেলটি তৈরি করবেন। এই গাইডের জন্য, আমরা স্ব-স্বাক্ষরিত শংসাপত্র, বাণিজ্যিক শংসাপত্র বা লেটস এনক্রিপ্টের যে কোনওটি কীভাবে ব্যবহার করতে পারি তার বিভিন্ন বিকল্পগুলি ব্যাখ্যা করব।

একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে (যা আপনি কেবল স্থানীয় পরীক্ষার পরিবেশে ব্যবহার করা উচিত), আপনি ওপেনএসএসএল সরঞ্জামটি ব্যবহার করতে পারেন।

# mkdir /etc/ssl/tecmint.lan
# cd /etc/ssl/tecmint.lan/
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout  tecmint.lan.key -out tecmint.lan.crt

তারপরে নিম্নরূপে শংসাপত্রের একটি বান্ডিল এবং কী তৈরি করুন।

# cat tecmint.crt tecmint.key >tecmint.pem

দ্রষ্টব্য: উত্পাদন ব্যবহারের জন্য, আপনি হয় বাণিজ্যিক শংসাপত্র কর্তৃপক্ষের (সিএ) কাছ থেকে একটি শংসাপত্র কিনতে পারেন বা লেটস এনক্রিপ্ট থেকে একটি বিনামূল্যে, স্বয়ংক্রিয় এবং পুরোপুরি স্বীকৃত শংসাপত্র নিতে পারেন। তারপরে একটি পিইএম বান্ডেল তৈরি করুন।

আপনি যদি কোনও বাণিজ্যিক সিএ থেকে একটি শংসাপত্র কিনে থাকেন তবে আপনাকে প্রাইভেট কী, শংসাপত্র এবং সিএ বান্ডেলটি প্রদর্শিত হিসাবে মার্জ করতে হবে।

# cat example.com.key example.com.crt example.com-ca-bundle.crt > /etc/ssl/example.com.pem 

লেটস এনক্রিপ্টের জন্য শংসাপত্র, প্রাইভেট কী এবং সম্পূর্ণ চেইনটি /etc/letsencrypt/live/example.com/ এর অধীনে সংরক্ষণ করা হবে, সুতরাং প্রদর্শিত বান্ডেলটি তৈরি করুন।

# cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem >/etc/letsencrypt/live/example.com/example.com_bundle.pem

পদক্ষেপ 4: হিচ কনফিগার এবং শুরু করা

৫. এরপরে, বার্নিশটিকে হিচের জন্য ব্যাকএন্ড হিসাবে কনফিগার করুন এবং এইচটিটিপিএস-র জন্য ব্যবহারের জন্য এসএসএল/টিএলএস শংসাপত্র ফাইলগুলি উল্লেখ করুন, হিচ প্রধান কনফিগারেশন ফাইলে, সম্পাদনার জন্য এটি খুলুন।

# vi /etc/hitch/hitch.conf

সীমানা বিভাগ আইপি ঠিকানাগুলি সংজ্ঞায়িত করে এবং পোর্ট হিচ শুনবে to ডিফল্ট কনফিগারেশন হ'ল সার্ভারের সাথে সংযুক্ত সমস্ত আইপিভি 4 এবং আইপিভি 6 ইন্টারফেস শুনতে হবে এবং 443 পোর্টে চলবে এবং আগত এইচটিটিপিএস অনুরোধগুলি হ্যান্ডেল করবে, সেগুলি বার্নিশে বন্ধ করবে।

ব্যাকএন্ড প্যারামিটার ব্যবহার করে হিচ কনফিগারেশন ফাইলে ডিফল্ট ব্যাকএন্ড প্রক্সি পোর্টটি 6086 থেকে 8443 (বার্নিশকে অনুরোধ ফরোয়ার্ড করতে ব্যবহৃত পোর্ট) থেকে পরিবর্তন করুন। এছাড়াও, হিসাবে দেখানো হয়েছে হিসাবে পেম-ফাইলের পরামিতি ব্যবহার করে শংসাপত্রের ফাইলটি নির্দিষ্ট করুন।

backend = "[127.0.0.1]:8443"
#pem-dir = "/etc/pki/tls/private"
pem-file = "/etc/ssl/tecmint.lan/tecmint.pem"

ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

Now. এখন হিচ পরিষেবাটি শুরু করুন এবং এটি স্বয়ংক্রিয়ভাবে সিস্টেম বুটে শুরু করতে সক্ষম করুন। নোট করুন যে - এখন > স্যুইচড ব্যবহারের সাথে সাথে স্যুইচ করা হয়, পাশাপাশি একটি সিস্টেমড সার্ভিস শুরু করে এবং তারপরে স্থিতিটি পরীক্ষা করে দেখুন যে এটি নিম্নলিখিত এবং চলমান রয়েছে কি না।

# systemctl enable --now hitch
# systemctl status hitch

Test. আপনার ওয়েব সাইট/অ্যাপ্লিকেশনটি এখন এইচটিটিপিএসে চলছে কিনা তা পরীক্ষা করার আগে আপনি সার্ভারের সেই পোর্টটির জন্য নির্ধারিত অনুরোধগুলিকে ফায়ারওয়ালের মধ্য দিয়ে যেতে অনুমতি দেওয়ার জন্য ফায়ারওয়ালে এইচটিটিপিএস পরিষেবা পোর্ট ৪৪৩ এর অনুমতি দেওয়া দরকার need

# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

পদক্ষেপ 5: বার্নিশ ক্যাশে-হিচ সেটআপের সাথে এসএসএল/টিএলএস সমাপ্তির পরীক্ষা করা

৮. এখন বার্নিশ ক্যাশে-হিচ সেটআপ পরীক্ষা করার সময় এসেছে। একটি ওয়েব ব্রাউজার খুলুন এবং এইচটিটিপিএসে নেভিগেট করতে আপনার ডোমেন বা সার্ভারের আইপি ব্যবহার করুন।

https://www.example.com
OR
https://SERVER_IP/

আপনার ওয়েব অ্যাপ্লিকেশনটির সূচক পৃষ্ঠাটি লোড হয়ে গেলে, বার্নিশ ক্যাশের মাধ্যমে সামগ্রীটি সরবরাহ করা হচ্ছে তা নিশ্চিত করতে HTTP শিরোনামগুলি পরীক্ষা করে দেখুন।

এটি করতে, লোড হওয়া ওয়েব পৃষ্ঠায় ডান-ক্লিক করুন, বিকাশকারী সরঞ্জাম খোলার জন্য বিকল্পগুলির তালিকা থেকে পরিদর্শন করুন নির্বাচন করুন। তারপরে নেটওয়ার্ক ট্যাবে ক্লিক করুন এবং পৃষ্ঠাটি পুনরায় লোড করুন, তারপরে নিম্নলিখিত স্ক্রিনশটটিতে হাইলাইট করা হিসাবে HTTP শিরোনামগুলি দেখার জন্য একটি অনুরোধ নির্বাচন করুন।

পদক্ষেপ।: বার্নিশ ক্যাশে HTTP কে HTTPS এ পুনঃনির্দেশ করা হচ্ছে

9. আপনার ওয়েব সাইটটি কেবল এইচটিটিপিএসে চালানোর জন্য আপনাকে সমস্ত এইচটিটিপি ট্রাফিক এইচটিটিপিএসে পুনর্নির্দেশ করতে হবে। আপনি আপনার হাইচ কনফিগারেশন ফাইলে নিম্নলিখিত কনফিগারেশন যুক্ত করে এটি করতে পারেন।

# vi /etc/hitch/hitch.conf 

প্রথমে লাইন আমদানি স্ট্যান্ড করুন; vlc 4.0 এর ঠিক নীচে; এখানেই আমরা অনুরোধ শিরোনামগুলি সংশোধন করতে পারি এবং ক্লায়েন্টের অনুরোধগুলি পুনর্নির্দেশের জন্য একটি সিন্থ কার্যকর করতে পারি।

এটি দেখতে এটি পরিবর্তন করুন।

sub vcl_recv {
    if (std.port(server.ip) != 443) {
        set req.http.location = "https://" + req.http.host + req.url;
        return(synth(301));
    }
}

নোট করুন যে প্রক্সি প্রোটোকলটি বার্নিশকে সার্ভার.আইপি ভেরিয়েবল থেকে হিচের শ্রবণ পোর্ট 443 দেখতে সক্ষম করে। সুতরাং লাইন std.port (সার্ভার.আইপি) ক্লায়েন্ট সংযোগ প্রাপ্ত পোর্ট নম্বরটি প্রদান করে।

যদি এইচটিটিপিএসের জন্য বন্দরটি 443 না হয় (যেমন (স্টাডি.পোর্ট (সার্ভার.আইপি) দ্বারা পরীক্ষা করা হয়েছে! = 443)), সাব্রোটাইন অনুরোধটি এইচটিটিপি লোকেশন শিরোনামটি সেট করবে (রেকর্ড। Htp.location সেট করুন) একটি সুরক্ষিত অনুরোধে সেট করবে (“ https:/"+ req.http.host + req.url) কেবল ওয়েব ব্রাউজারকে ওয়েব পৃষ্ঠার একটি HTTPS সংস্করণ (অর্থাত্ ইউআরএল পুনঃনির্দেশ) লোড করতে বলছে।

অবস্থান শিরোনামটি v1_synth সাবরুটিনে প্রেরণ করা হবে (যা রিটার্ন (সিন্থ (301)) ব্যবহার করে 301 এর HTTP স্থিতি কোড সহ স্থায়ীভাবে সরানো হবে)।

১০. এরপরে, উপরের সিন্থটি প্রক্রিয়া করার জন্য, নিম্নলিখিত vcl_synth সাব্রোটিন যুক্ত করুন (এর অনেক ব্যবহারের একটির ক্ষেত্রে ব্যবহারকারীদের পুনর্নির্দেশ করা হচ্ছে)।

sub vcl_synth {
        if (resp.status == 301) {
                set resp.http.location = req.http.location;
		  set resp.status = 301;
                return (deliver);
        }
}

এটি প্রতিক্রিয়া স্থিতি 301 কিনা তা যাচাই করে, প্রতিক্রিয়াতে HTTP অবস্থান শিরোনামটি অনুরোধে HTTP অবস্থান শিরোনামে সেট করা থাকে যা আসলে HTTPS এ পুনঃনির্দেশিত হয় এবং একটি বিতরণ ক্রিয়া সম্পাদন করে।

বিতরণ কর্মটি ব্যাকএন্ডের প্রতিক্রিয়া নিয়ে একটি প্রতিক্রিয়া তৈরি করে, প্রতিক্রিয়াটিকে ক্যাশে সঞ্চয় করে এবং ক্লায়েন্টকে প্রেরণ করে।

ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

১১. আবার, পরিষেবাটি পুনরায় চালু করে বার্নিশ কনফিগারেশনে নতুন পরিবর্তনগুলি প্রয়োগ করুন। তারপরে HTTP থেকে HTTPS এ পুনঃনির্দেশ নিশ্চিত করার জন্য কার্ল কমান্ড-লাইন সরঞ্জামটি ব্যবহার করুন।

# systemctl restart varnish
# curl -I http://eaxmple.com/

ব্রাউজার থেকে, প্রতিক্রিয়াটিও নিম্নলিখিত স্ক্রিনশটে দেখানো মত একই।

আমরা আশা করি যে এই মুহূর্তে সবকিছু ঠিকঠাক কাজ করেছে। যদি তা না হয় তবে নীচের মতামত ফর্মের মাধ্যমে একটি মন্তব্য বা প্রশ্ন ফেলে দিন। যে কোনও উন্নত কনফিগারেশন বিকল্পের জন্য, হিচ ডকুমেন্টেশনে যান।