ওয়েব প্যাকেজার ব্যবহার করে সাইনড এক্সচেঞ্জ (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.git
webpkgserver
তৈরি করুন।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:'
করুন।CertURLBase
SXG শংসাপত্রের পরিবেশন অবস্থান নির্দেশ করে। এই তথ্যটি SXG-এরSignature
শিরোনামেcert-url
প্যারামিটার সেট করতে ব্যবহৃত হয়। উৎপাদন পরিবেশে,CertURLBase
এভাবে ব্যবহার করা হয়:CertURLBase = 'https://mysite.com/'
। যাইহোক, স্থানীয় পরীক্ষার জন্য,CertURLBase = 'data:'
ব্যবহার করা যেতে পারেwebpkgserver
cert-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:
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
বিকল্পগুলি কনফিগার করতে হবে। ডিফল্টরূপে,webpkgserver
HTTP এর উপর চলে। যাইহোক, ব্রাউজার দ্বারা বৈধ বলে বিবেচিত হওয়ার জন্য SXG শংসাপত্রগুলি HTTPS-এর মাধ্যমে পরিবেশন করা আবশ্যক৷TLS.PEMFile
এবংTLS.KeyFile
কনফিগার করাwebpkgserver
HTTPS ব্যবহার করতে দেয় এবং তাই ব্রাউজারে সরাসরি 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 =