ওয়েব প্যাকেজার ব্যবহার করে সাইনড এক্সচেঞ্জ (SXGs) কীভাবে পরিবেশন করবেন তা শিখুন।
একটি স্বাক্ষরিত বিনিময় (SXG) হল একটি ডেলিভারি মেকানিজম যা এটি কীভাবে বিতরণ করা হয়েছিল তার থেকে স্বাধীনভাবে একটি সম্পদের উত্স প্রমাণীকরণ করা সম্ভব করে। নিম্নলিখিত নির্দেশাবলী ব্যাখ্যা করে কিভাবে Web Packager ব্যবহার করে সাইনড এক্সচেঞ্জ সেট আপ করতে হয়। স্ব-স্বাক্ষরিত এবং CanSignHttpExchanges শংসাপত্র উভয়ের জন্য নির্দেশাবলী অন্তর্ভুক্ত করা হয়েছে।
একটি স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করে SXG পরিবেশন করুন
SXGs পরিবেশন করার জন্য একটি স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করা প্রাথমিকভাবে প্রদর্শন এবং পরীক্ষার উদ্দেশ্যে ব্যবহৃত হয়। একটি স্ব-স্বাক্ষরিত শংসাপত্রের সাথে স্বাক্ষরিত SXGগুলি পরীক্ষার পরিবেশের বাইরে ব্যবহার করা হলে ব্রাউজারে ত্রুটি বার্তা তৈরি করবে এবং ক্রলারদের পরিবেশন করা উচিত নয়৷
পূর্বশর্ত
এই নির্দেশাবলী অনুসরণ করার জন্য আপনাকে আপনার ডেভেলপমেন্ট এনভায়রনমেন্টে openssl এবং Go ইনস্টল করতে হবে।
একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন
এই বিভাগটি ব্যাখ্যা করে যে কীভাবে একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে হয় যা স্বাক্ষরিত এক্সচেঞ্জের সাথে ব্যবহার করা যেতে পারে।
নির্দেশনা
একটি ব্যক্তিগত কী তৈরি করুন।
openssl ecparam -out priv.key -name prime256v1 -genkeyপ্রাইভেট কী
priv.keyনামের একটি ফাইল হিসাবে সংরক্ষণ করা হবে।একটি শংসাপত্র স্বাক্ষর অনুরোধ (CSR) তৈরি করুন।
openssl req -new -sha256 -key priv.key -out cert.csr -subj '/O=Web Packager Demo/CN=example.com'একটি শংসাপত্র স্বাক্ষরের অনুরোধ হল এনকোড করা পাঠ্যের একটি ব্লক যা একটি শংসাপত্র কর্তৃপক্ষ (CA) থেকে একটি শংসাপত্রের অনুরোধ করার জন্য প্রয়োজনীয় তথ্য প্রকাশ করে৷ যদিও আপনি একটি CA থেকে একটি শংসাপত্রের জন্য অনুরোধ করবেন না, তবুও একটি শংসাপত্র স্বাক্ষর করার অনুরোধ তৈরি করা প্রয়োজন৷
উপরের কমান্ডটি
Web Packager Demoনামে একটি প্রতিষ্ঠানের জন্য একটি শংসাপত্র স্বাক্ষর করার অনুরোধ তৈরি করে যার সাধারণ নামexample.comরয়েছে। সাধারণ নামটি সাইটের সম্পূর্ণ যোগ্য ডোমেন নাম হওয়া উচিত যাতে এমন সামগ্রী রয়েছে যা আপনি SXG হিসাবে প্যাকেজ করতে চান৷একটি প্রোডাকশন SXG সেটআপে, এটি আপনার মালিকানাধীন একটি সাইট হবে। যাইহোক, এই নির্দেশাবলীতে বর্ণিত একটি পরীক্ষার পরিবেশে, এটি যেকোনো সাইট হতে পারে।
CanSignHttpExchangesএক্সটেনশন আছে এমন একটি শংসাপত্র তৈরি করুন৷openssl x509 -req -days 90 -in cert.csr -signkey priv.key -out cert.pem -extfile <(echo -e "1.3.6.1.4.1.11129.2.1.22 = ASN1:NULL\nsubjectAltName=DNS:example.com")এই কমান্ডটি
cert.pemসার্টিফিকেট ফাইল তৈরি করতে 1 এবং 2 ধাপে তৈরি ব্যক্তিগত কী এবং CSR ব্যবহার করে।-extfileপতাকাটিCanSignHttpExchangesসার্টিফিকেট এক্সটেনশনের সাথে শংসাপত্রকে সংযুক্ত করে (1.3.6.1.4.1.11129.2.1.22হলCanSignHttpExchangesএক্সটেনশনের জন্য অবজেক্ট শনাক্তকারী )। উপরন্তু,-extfileপতাকাexample.comএকটি বিষয়ের বিকল্প নাম হিসেবেও সংজ্ঞায়িত করে।আপনি যদি
cert.pemএর বিষয়বস্তু সম্পর্কে আগ্রহী হন তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে সেগুলি দেখতে পারেন:openssl x509 -in cert.pem -noout -textআপনি ব্যক্তিগত কী এবং শংসাপত্র তৈরি করা শেষ করেছেন৷ পরবর্তী বিভাগে আপনার
priv.keyএবংcert.pemফাইলগুলির প্রয়োজন হবে৷
পরীক্ষার জন্য ওয়েব প্যাকেজার সার্ভার সেটআপ করুন
পূর্বশর্ত
ওয়েব প্যাকেজার ইনস্টল করুন।
git clone https://github.com/google/webpackager.gitwebpkgserverতৈরি করুন।cd webpackager/cmd/webpkgserver go build .webpkgserverহল ওয়েব প্যাকেজার প্রকল্পের মধ্যে একটি নির্দিষ্ট বাইনারি।যাচাই করুন যে
webpkgserverসঠিকভাবে ইনস্টল করা হয়েছে।./webpkgserver --helpএই কমান্ডটি
webpkgserverএর ব্যবহার সম্পর্কে তথ্য প্রদান করবে। যদি এটি কাজ না করে, একটি ভাল প্রথম সমস্যা সমাধানের পদক্ষেপ হল আপনার GOPATH সঠিকভাবে কনফিগার করা হয়েছে কিনা তা যাচাই করা।
নির্দেশনা
webpkgserverডিরেক্টরিতে নেভিগেট করুন (আপনি ইতিমধ্যে এই ডিরেক্টরিতে থাকতে পারেন)।cd /path/to/cmd/webpkgserverউদাহরণটি অনুলিপি করে একটি
webpkgsever.tomlফাইল তৈরি করুন।cp ./webpkgserver.example.toml ./webpkgserver.tomlএই ফাইলটিতে
webpkgserverজন্য কনফিগারেশন বিকল্প রয়েছে।আপনার পছন্দের সম্পাদকের সাথে
webpkgserver.tomlখুলুন এবং নিম্নলিখিত পরিবর্তনগুলি করুন:- লাইন
#AllowTestCert = falseপরিবর্তন করেAllowTestCert = trueকরুন। - আপনার তৈরি করা PEM শংসাপত্র,
cert.pemএর পাথ প্রতিফলিত করতেPEMFile = 'path/to/your.pem'লাইনটি পরিবর্তন করুন।TLS.PEMFileউল্লেখ করে লাইন পরিবর্তন করবেন না—এটি একটি ভিন্ন কনফিগারেশন বিকল্প। - আপনার তৈরি করা ব্যক্তিগত কী,
priv.keyএর পথটি প্রতিফলিত করতেKeyFile = 'priv.key'লাইনটি পরিবর্তন করুন।TLS.KeyFileউল্লেখ করে লাইন পরিবর্তন করবেন না—এটি একটি ভিন্ন কনফিগারেশন বিকল্প। - লাইন
#CertURLBase = '/webpkg/cert'পরিবর্তন করেCertURLBase = 'data:'করুন।CertURLBaseSXG শংসাপত্রের পরিবেশন অবস্থান নির্দেশ করে। এই তথ্যটি SXG-এরSignatureশিরোনামেcert-urlপ্যারামিটার সেট করতে ব্যবহৃত হয়। উৎপাদন পরিবেশে,CertURLBaseএভাবে ব্যবহার করা হয়:CertURLBase = 'https://mysite.com/'। যাইহোক, স্থানীয় পরীক্ষার জন্য,CertURLBase = 'data:'ব্যবহার করা যেতে পারেwebpkgservercert-urlক্ষেত্রে সার্টিফিকেট ইনলাইন করার জন্য একটি ডেটা URL ব্যবহার করার নির্দেশ দিতে। স্থানীয় পরীক্ষার জন্য, এটি SXG সার্টিফিকেট পরিবেশন করার সবচেয়ে সুবিধাজনক উপায়। - আপনি যে ডোমেনের জন্য একটি শংসাপত্র তৈরি করেছেন সেটি প্রতিফলিত করতে
Domain = 'example.org'লাইনটি পরিবর্তন করুন। আপনি যদি এই নিবন্ধের নির্দেশাবলী মৌখিকভাবে অনুসরণ করেন, তাহলে এটিexample.comএ পরিবর্তন করা উচিত।webpkgserverশুধুমাত্রwebpkgserver.tomlদ্বারা নির্দেশিত ডোমেন থেকে সামগ্রী আনবে। যদি আপনিwebpkgserver.tomlআপডেট না করে একটি ভিন্ন ডোমেন থেকে পৃষ্ঠাগুলি আনার চেষ্টা করেন, তাহলেwebpkgserverলগগুলি দেখাবে ত্রুটি বার্তাURL doesn't match the fetch targets৷
ঐচ্ছিক
আপনি যদি সাবরিসোর্স প্রিলোডিং সক্ষম বা নিষ্ক্রিয় করতে চান, নিম্নলিখিত
webpkgserver.tomlকনফিগারেশন বিকল্পগুলি প্রাসঙ্গিক:স্টাইলশীট এবং স্ক্রিপ্ট সাবরিসোর্সগুলিকে SXG হিসাবে প্রিলোড করার জন্য
webpkgserverইনসার্ট নির্দেশিকা পেতে,#PreloadCSS = falseকেPreloadCSS = trueএ পরিবর্তন করুন। উপরন্তু, লাইন#PreloadJS = falseপরিবর্তন করেPreloadJS = true।এই কনফিগারেশন বিকল্পটি ব্যবহার করার বিকল্প হিসাবে, আপনি ম্যানুয়ালি
Link: rel="preload"শিরোনাম এবং<link rel="preload">ট্যাগগুলি একটি পৃষ্ঠার HTML-এ৷ডিফল্টরূপে,
webpkgserverবিদ্যমান<link rel="preload">ট্যাগগুলিকে SXG হিসাবে এই সামগ্রী আনার জন্য প্রয়োজনীয় সমতুল্য<link>ট্যাগগুলির সাথে প্রতিস্থাপন করে৷ এটি করার সময়,webpkgserverপ্রয়োজন অনুযায়ীallowed-alt-sxgএবংheader-integrityনির্দেশাবলী সেট করবে—এইচটিএমএল লেখকদের হাতে এগুলি যোগ করার দরকার নেই। এই আচরণটি ওভাররাইড করতে এবং বিদ্যমান নন-SXG প্রিলোডগুলিকে রাখতে,#KeepNonSXGPreloads (default = false)KeepNonSXGPreloads = trueএ পরিবর্তন করুন। মনে রাখবেন যে এই বিকল্পটি সক্ষম করলে SXG এই প্রয়োজনীয়তা অনুসারে Google SXG ক্যাশের জন্য অযোগ্য হয়ে উঠতে পারে।
- লাইন
webpkgserverশুরু করুন।./webpkgserverসার্ভার সফলভাবে শুরু হলে, আপনি নিম্নলিখিত লগ বার্তাগুলি দেখতে পাবেন:
shell Listening at 127.0.0.1:8080 Successfully retrieved valid OCSP. Writing to cache in /private/tmp/webpkgআপনার লগ বার্তা সামান্য ভিন্ন দেখতে পারে. বিশেষ করে,
webpkgserverসার্টিফিকেট ক্যাশে করার জন্য যে ডিরেক্টরিটি ব্যবহার করে তা অপারেটিং সিস্টেম অনুসারে পরিবর্তিত হয়।আপনি যদি এই বার্তাগুলি দেখতে না পান, একটি ভাল প্রথম সমস্যা সমাধানের পদক্ষেপ হল
webpkgserver.tomlদুবার চেক করা।আপনি যদি
webpkgserver.tomlআপডেট করেন তাহলে আপনাকেwebpkgserverপুনরায় চালু করতে হবে।নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্রোম চালু করুন:
shell /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --user-data-dir=/tmp/udd \ --ignore-certificate-errors-spki-list=`openssl x509 -noout -pubkey -in cert.pem | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64`এই কমান্ডটি
cert.pemসাথে সম্পর্কিত শংসাপত্রের ত্রুটিগুলি উপেক্ষা করার জন্য Chrome-কে নির্দেশ দেয়৷ এটি একটি পরীক্ষার শংসাপত্র ব্যবহার করে SXG পরীক্ষা করা সম্ভব করে তোলে। এই কমান্ড ছাড়াই যদি Chrome চালু করা হয়, তাহলে DevTools-এ SXG পরিদর্শন করলেCertificate verification error: ERR_CERT_INVALID।দ্রষ্টব্য:
আপনার মেশিনে Chrome এর অবস্থানের পাশাপাশি
cert.pemএর অবস্থান প্রতিফলিত করতে আপনাকে এই কমান্ডটি সামঞ্জস্য করতে হতে পারে। আপনি যদি এটি সঠিকভাবে করে থাকেন তবে আপনার ঠিকানা বারের নীচে প্রদর্শিত একটি সতর্কতা দেখতে হবে৷ সতর্কতাটি এর অনুরূপ হওয়া উচিত:You are using an unsupported command-line flag: --ignore-certificate-errors-spki-list=9uxADcgc6/ho0mJLRMBcOjfBaN21k0sOInoMchr9CMY=.যদি সতর্কতা একটি হ্যাশ স্ট্রিং অন্তর্ভুক্ত না করে, আপনি সঠিকভাবে SXG শংসাপত্রের অবস্থান নির্দেশ করেননি৷
DevTools নেটওয়ার্ক ট্যাব খুলুন, তারপর নিম্নলিখিত URL-এ যান:
http://localhost:8080/priv/doc/https://example.com।এটি
https://example.comএর বিষয়বস্তু সমন্বিত একটি SXG-এর জন্যhttp://localhost:8080এ চলমানwebpackagerইন্সট্যান্সকে অনুরোধ করে।/priv/doc/হলwebpackagerদ্বারা ব্যবহৃত ডিফল্ট API এন্ডপয়েন্ট।
নিম্নলিখিত সংস্থানগুলি নেটওয়ার্ক ট্যাবে তালিকাভুক্ত করা হয়েছে:
-
signed-exchangeধরন সহ একটি সংস্থান। এই SXG. -
cert-chain+cborটাইপ সহ একটি সংস্থান। এই SXG সার্টিফিকেট. SXG সার্টিফিকেট অবশ্যইapplication/cert-chain+cborফর্ম্যাট ব্যবহার করবে। - টাইপ
documentসহ একটি সম্পদ। এটি সেই সামগ্রী যা SXG এর মাধ্যমে বিতরণ করা হয়েছে৷
আপনি যদি এই সংস্থানগুলি দেখতে না পান তবে ব্রাউজার ক্যাশে সাফ করার চেষ্টা করুন, তারপর
http://localhost:8080/priv/doc/https://example.comপুনরায় লোড করুন।স্বাক্ষরিত এক্সচেঞ্জ এবং এর স্বাক্ষর সম্পর্কে আরও তথ্য দেখতে পূর্বরূপ ট্যাবে ক্লিক করুন।

-
একটি CanSignHttpExchanges শংসাপত্র ব্যবহার করে স্বাক্ষরিত এক্সচেঞ্জ পরিবেশন করুন
এই বিভাগে নির্দেশাবলী ব্যাখ্যা করে যে কিভাবে একটি CanSignHttpExchanges শংসাপত্র ব্যবহার করে SXG গুলি পরিবেশন করা যায়। SXG-এর উৎপাদন ব্যবহারের জন্য একটি CanSignHttpExchanges শংসাপত্র প্রয়োজন।
সংক্ষিপ্ততার খাতিরে, এই নির্দেশাবলী এই অনুমানে লেখা হয়েছে যে আপনি একটি স্ব-স্বাক্ষরিত শংসাপত্র বিভাগ ব্যবহার করে সেটআপ স্বাক্ষরিত এক্সচেঞ্জে আলোচিত ধারণাগুলি বোঝেন৷
পূর্বশর্ত
আপনার একটি
CanSignHttpExchangesশংসাপত্র আছে। এই পৃষ্ঠায় CA-এর তালিকা রয়েছে যারা এই ধরনের শংসাপত্র অফার করে।আপনার যদি কোনো শংসাপত্র না থাকে, তাহলে আপনি আপনার CA থেকে স্বয়ংক্রিয়ভাবে শংসাপত্র পুনরুদ্ধার করতে আপনার webpkgserver কনফিগার করতে পারেন। আপনি এই পৃষ্ঠায়
webpkgserver.tomlএ যা যায় তার জন্য নির্দেশাবলী অনুসরণ করতে পারেন।যদিও এটি একটি প্রয়োজনীয়তা নয়, এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি একটি প্রান্ত সার্ভারের পিছনে
webpkgserverচালান৷ আপনি যদি এজ সার্ভার ব্যবহার না করেন, তাহলে আপনাকেwebpkgserver.tomlএTLS.PEMFileএবংTLS.KeyFileবিকল্পগুলি কনফিগার করতে হবে। ডিফল্টরূপে,webpkgserverHTTP এর উপর চলে। যাইহোক, ব্রাউজার দ্বারা বৈধ বলে বিবেচিত হওয়ার জন্য SXG শংসাপত্রগুলি HTTPS-এর মাধ্যমে পরিবেশন করা আবশ্যক৷TLS.PEMFileএবংTLS.KeyFileকনফিগার করাwebpkgserverHTTPS ব্যবহার করতে দেয় এবং তাই ব্রাউজারে সরাসরি SXG সার্টিফিকেট পরিবেশন করে।
নির্দেশনা
আপনার সাইটের SXG শংসাপত্র এবং আপনার সাইটের CA শংসাপত্র অনুসরণ করে একটি PEM ফাইল তৈরি করুন৷ এই বিষয়ে আরও নির্দেশাবলী এখানে পাওয়া যাবে।
PEM হল একটি ফাইল বিন্যাস যা সাধারণত একাধিক শংসাপত্র সংরক্ষণের জন্য একটি "ধারক" হিসাবে ব্যবহৃত হয়।
উদাহরণটি অনুলিপি করে একটি নতুন
webpkgsever.tomlফাইল তৈরি করুন।cp ./webpkgserver.example.toml ./webpkgserver.tomlআপনার পছন্দের সম্পাদকের সাথে
webpkgserver.tomlখুলুন এবং নিম্নলিখিত পরিবর্তনগুলি করুন:- আপনার সম্পূর্ণ শংসাপত্রের চেইন ধারণকারী PEM ফাইলের অবস্থান প্রতিফলিত করতে
PEMFile = cert.pemলাইনটি পরিবর্তন করুন। - আপনার PEM ফাইলের সাথে সম্পর্কিত ব্যক্তিগত কীটির অবস্থান প্রতিফলিত করতে
KeyFile = 'priv.key'লাইনটি পরিবর্তন করুন। - আপনার সাইট প্রতিফলিত করতে লাইন
Domain = 'example.org'পরিবর্তন করুন। - (ঐচ্ছিক)
webpkgserverপ্রতি 90 দিনে (Google-এর জন্য 45 দিন) SXG সার্টিফিকেট স্বয়ংক্রিয়ভাবে পুনর্নবীকরণ করতে,webpkgserver.tomlএর[SXG.ACME]বিভাগে বিকল্পগুলি কনফিগার করুন। এই বিকল্পটি শুধুমাত্র একটি DigiCert বা Google ACME অ্যাকাউন্ট সেটআপ সহ সাইটগুলিতে প্রযোজ্য৷
- আপনার সম্পূর্ণ শংসাপত্রের চেইন ধারণকারী PEM ফাইলের অবস্থান প্রতিফলিত করতে
webpkgserverইনস্ট্যান্সে ট্রাফিক ফরোয়ার্ড করতে আপনার প্রান্ত সার্ভার কনফিগার করুন।webpkgserverদ্বারা পরিচালিত দুটি প্রাথমিক ধরনের অনুরোধ রয়েছে: SXG-এর জন্য অনুরোধ (যা/priv/doc/এন্ডপয়েন্ট দ্বারা পরিবেশিত হয়) এবং SXG শংসাপত্রের জন্য অনুরোধ (যা/webpkg/cert/এন্ডপয়েন্ট দ্বারা পরিবেশিত হয়)। এই ধরনের প্রতিটি অনুরোধের জন্য URL পুনর্লিখনের নিয়মগুলি সামান্য পরিবর্তিত হয়। আরও তথ্যের জন্য, ফ্রন্ট এন্ড এজ সার্ভারের পিছনে রানিং দেখুন।দ্রষ্টব্য:
ডিফল্টরূপে,
webpkgserver/webpkg/cert/$CERT_HASHএ SXG শংসাপত্র পরিবেশন করে —উদাহরণস্বরূপ,/webpkg/cert/-0QmE0gvoedn92gtwI3s7On9zPevJGm5pn2RYhpZxgY।$CERT_HASHতৈরি করতে, নিম্নলিখিত কমান্ডটি চালান:shell openssl base64 -in cert.pem -d | openssl dgst -sha256 -binary | base64 | tr /+ _- | tr -d =