এই টিউটোরিয়ালে, আপনি শিখবেন কীভাবে GlassFish (বর্তমানে Eclipse GlassFish) এ একটি SSL সার্টিফিকেট ইনস্টল করতে হয় Java keytool ইউটিলিটি এবং asadmin কমান্ড লাইন ব্যবহার করে।
GlassFish এর জন্য একটি CSR কোড তৈরি করুন
SSL সার্টিফিকেট অর্ডার করার প্রথম ধাপ হল একটি CSR (Certificate Signing Request) তৈরি করা এবং এটি আপনার সার্টিফিকেট অথরিটির (আপনার SSL প্রদানকারী) কাছে পাঠানো। CSR হল একটি টেক্সট ব্লক যাতে আপনার ওয়েবসাইট এবং প্রতিষ্ঠান সম্পর্কে বিস্তারিত তথ্য থাকে। CA এটি ব্যবহার করে আপনার পরিচয় যাচাই করে, তাই যদি CSR-এ ভুল বা পুরনো তথ্য থাকে, তাহলে CA আপনার সার্টিফিকেট সাইন করবে না।
GlassFish-এ, CSR তৈরি করা হয় একটি Java keystore থেকে keytool ব্যবহার করে, এবং সেই একই keystore-এ প্রাইভেট কী থাকে যা আপনি ইনস্টলেশনের সময় পুনরায় ব্যবহার করবেন। আপনার কাছে দুটি বিকল্প রয়েছে:
- স্বয়ংক্রিয়ভাবে CSR তৈরি করতে আমাদের CSR জেনারেটর ব্যবহার করুন।
- GlassFish-এ কীভাবে একটি CSR তৈরি করতে হয় সে সম্পর্কে আমাদের ধাপে ধাপে টিউটোরিয়াল অনুসরণ করুন।
আপনি যেকোনো টেক্সট এডিটর (যেমন, Notepad) দিয়ে আপনার CSR ফাইল খুলতে পারেন। আপনার CA-তে এটি পাঠানোর আগে, আমরা টাইপো বা ত্রুটির জন্য একটি চূড়ান্ত পরীক্ষার পরামর্শ দিই। এটি পরিদর্শন করতে আমাদের CSR ডিকোডার টুল ব্যবহার করুন।
আপনার সার্টিফিকেটের ভ্যালিডেশন টাইপের উপর নির্ভর করে, ইস্যু করতে কয়েক মিনিট থেকে কয়েক কার্যদিবস পর্যন্ত সময় লাগতে পারে। একবার SSL ফাইলগুলি আপনার ইনবক্সে পৌঁছালে, নিচের ইনস্টলেশনের সাথে চালিয়ে যান।
GlassFish-এ একটি SSL সার্টিফিকেট ইনস্টল করুন
GlassFish ইনস্টলেশনের পেছনে মূল ধারণা হল আপনার সাইন করা সার্টিফিকেট অবশ্যই আপনার CSR দিয়ে তৈরি করা প্রাইভেট কী-এর সাথে সংযুক্ত হতে হবে। এটি করার জন্য, আপনি সার্টিফিকেট চেইন এবং সাইন করা সার্টিফিকেটটি সেই keystore-এ ইম্পোর্ট করেন যেটিতে ইতিমধ্যে সেই কী রয়েছে, একই যেটি আপনি CSR তৈরি করতে ব্যবহার করেছিলেন।
ধাপ ১: আপনার সার্টিফিকেট ফাইলগুলি বের করুন
আপনার CA আপনার দেওয়া ঠিকানায় সার্টিফিকেটটি ইমেইল করে, সাধারণত একটি ZIP আর্কাইভ হিসেবে। এটি এক্সট্র্যাক্ট করুন। ফাইলগুলি দুটি ফরম্যাটের একটিতে আসে:
- PEM: পৃথক ফাইল, সাধারণত একটি .crt (আপনার সার্ভার সার্টিফিকেট) এবং একটি .ca-bundle (রুট এবং ইন্টারমিডিয়েট সার্টিফিকেট)।
- PKCS#7: একটি একক .p7b (অথবা .cer) ফাইল যা ইতিমধ্যে আপনার সার্টিফিকেটকে সম্পূর্ণ চেইনের সাথে একত্রে বান্ডেল করে।
ধাপ ২: আপনার GlassFish সার্ভারে SSL ফাইলগুলি আপলোড করুন
এক্সট্র্যাক্ট করা ফাইলগুলি সার্ভারে আপলোড করুন, যে keystore থেকে আপনি আপনার CSR তৈরি করেছিলেন সেটির একই ডিরেক্টরিতে (নিচে mykeystore.jks হিসেবে উল্লেখ করা হয়েছে)। PEM ফরম্যাটের জন্য দুটি ইম্পোর্ট কমান্ড প্রয়োজন; PKCS#7-এর জন্য মাত্র একটি প্রয়োজন। আপনার ফাইলের সাথে মেলে এমন ফরম্যাটটি বেছে নিন।
PEM ফরম্যাট। প্রথমে CA বান্ডেল ইম্পোর্ট করুন যাতে keytool একটি সম্পূর্ণ ট্রাস্ট চেইন তৈরি করতে পারে, তারপর আপনার সার্ভার সার্টিফিকেট ইম্পোর্ট করুন। নিম্নলিখিতভাবে CA বান্ডেল ইম্পোর্ট করুন:
keytool -import -trustcacerts -alias ca -file file.ca-bundle -keystore mykeystore.jks
এই চেইন এন্ট্রির alias-এর জন্য আপনি যেকোনো নাম ব্যবহার করতে পারেন (এখানে, ca), যতক্ষণ না এটি আপনার প্রাইভেট-কী alias থেকে ভিন্ন হয়। এরপর, আপনার সাইন করা সার্ভার সার্টিফিকেটটি বিদ্যমান প্রাইভেট-কী alias-এ ইম্পোর্ট করুন, যে alias আপনি CSR তৈরি করার সময় ব্যবহার করেছিলেন:
keytool -import -trustcacerts -alias myalias -file file.crt -keystore mykeystore.jks
এখানে, myalias অবশ্যই সেই alias হতে হবে যেটিতে ইতিমধ্যে আপনার প্রাইভেট কী রয়েছে। যেহেতু সেই alias-এ একটি কী আছে, keytool এই ইম্পোর্টটিকে একটি certificate reply হিসেবে গণ্য করে এবং সাইন করা সার্টিফিকেটটি কী-এর সাথে সংযুক্ত করে। এই ধাপটিই HTTPS কে কার্যকর করে; নিচের সতর্কতাটি দেখুন।
PKCS#7 ফরম্যাট। একটি .p7b ফাইলে ইতিমধ্যে সম্পূর্ণ চেইন থাকে, তাই একটি একক কমান্ড দিয়েই সবকিছু একসাথে ইম্পোর্ট করা যায়, আবার প্রাইভেট-কী alias-এ:
keytool -import -trustcacerts -alias myalias -file file.p7b -keystore mykeystore.jks
keytool আপনার keystore পাসওয়ার্ডের জন্য প্রম্পট করবে। উপরের মতোই, myalias অবশ্যই আপনার বিদ্যমান প্রাইভেট-কী alias-এর সাথে মিলতে হবে। যদি আপনার alias মনে না থাকে, তাহলে keystore-এর বিষয়বস্তু তালিকাভুক্ত করুন:
keytool -list -v -keystore mykeystore.jks
যে এন্ট্রির টাইপ PrivateKeyEntry সেটি খুঁজুন; সেই alias-টিই সেটি যেখানে আপনার সাইন করা সার্টিফিকেট ইম্পোর্ট করতে হবে।
⚠️ গুরুত্বপূর্ণ সমস্যা: সাইন করা সার্টিফিকেটটি একদম নতুন alias-এর অধীনে ইম্পোর্ট করবেন না। যদি alias-এর কোনো বিদ্যমান প্রাইভেট কী না থাকে, তাহলে keytool সার্টিফিকেটটিকে একটি স্বতন্ত্র বিশ্বস্ত এন্ট্রি হিসেবে সংরক্ষণ করে কোনো কী ছাড়াই, এবং TLS ব্যর্থ হবে। সবসময় সেই alias-এই reply ইম্পোর্ট করুন যেখানে ইতিমধ্যে কী রয়েছে (ডিফল্ট GlassFish alias: s1as)।
ধাপ ৩: ডিফল্ট GlassFish keystore-এ ইম্পোর্ট করুন
আপনার সার্টিফিকেট প্রস্তুত হয়ে গেলে, আপনার keystore-টি ডিফল্ট GlassFish keystore-এ ইম্পোর্ট করুন। একটি ডিফল্ট ইনস্টলে এটি ডোমেইনের config ডিরেক্টরিতে থাকে, উদাহরণস্বরূপ glassfish/domains/domain1/config/keystore.jks (পুরনো GlassFish 4 বিল্ডগুলিতে এটি একটি glassfish4/ শীর্ষ ফোল্ডারের অধীনে নেস্ট করা থাকে)। সংশ্লিষ্ট truststore হল একই ডিরেক্টরিতে cacerts.jks।
দ্রষ্টব্য: GlassFish ডিফল্টভাবে domain1 তৈরি করে। যদি আপনি নিজের ডোমেইন যোগ করে থাকেন, তাহলে তার পরিবর্তে সেই ডিরেক্টরিটি ব্যবহার করুন।
নিম্নলিখিতভাবে আপনার keystore-টি GlassFish keystore-এ ইম্পোর্ট করুন:
keytool -importkeystore -srckeystore mykeystore.jks -destkeystore keystore.jks
ধাপ ৪: keystore পাসওয়ার্ড মিলিয়ে নিন
GlassFish keystore-এর পাসওয়ার্ড অবশ্যই ডোমেইনের GlassFish মাস্টার পাসওয়ার্ড-এর সাথে মিলতে হবে। যদি মাস্টার পাসওয়ার্ড, keystore পাসওয়ার্ড এবং প্রাইভেট-কী পাসওয়ার্ড সবগুলো না মেলে, তাহলে GlassFish কী আনলক করতে পারবে না এবং আপনার SSL সার্টিফিকেট কাজ করবে না। (একটি নতুন ডোমেইনে, ডিফল্ট keystore পাসওয়ার্ড হল changeit।)
ধাপ ৫: আপনার GlassFish কনফিগারেশন আপডেট করুন
সফলভাবে ইম্পোর্ট করার পর, GlassFish-এর HTTPS লিসেনারকে আপনার সার্টিফিকেটের দিকে নির্দেশ করুন যাতে এটি ডিফল্ট সেলফ-সাইনড সার্টিফিকেটের পরিবর্তে নতুন সার্টিফিকেটটি সার্ভ করে। আপনি ব্রাউজার থেকে GlassFish অ্যাডমিনিস্ট্রেশন কনসোল-এর মাধ্যমে এটি করতে পারেন, অথবা ম্যানুয়ালি domain.xml সম্পাদনা করে।
বিকল্প A: অ্যাডমিনিস্ট্রেশন কনসোল। প্রথমে, ডোমেইনের জন্য নিরাপদ প্রশাসন সক্রিয় করুন:
asadmin enable-secure-admin
পরিবর্তনটি কার্যকর করার জন্য GlassFish ডোমেইন (ডিফল্ট হল domain1) পুনরায় শুরু করুন:
asadmin restart-domain domain1
এখন https://yoursite.com:4848-এ কনসোলটি খুলুন। সেলফ-সাইনড সার্টিফিকেট সতর্কতা বাতিল করুন এবং এগিয়ে যান। Configurations > server-config > HTTP Service > HTTP Listeners > http-listener-2-এ নেভিগেট করুন।
SSL ট্যাবটি খুলুন এবং, Certificate Nickname ফিল্ডে, আপনার সার্টিফিকেট alias প্রবেশ করান (আপনার keystore alias-এর সাথে একই)। তারপর General ট্যাবে স্যুইচ করুন এবং লিসেনার পোর্ট পরিবর্তন করে 443 করুন। GlassFish ডিফল্টভাবে HTTPS-এর জন্য 8181 ব্যবহার করে। আপনার পরিবর্তনগুলি সংরক্ষণ করুন।
মাঝেমধ্যে কনসোলে সব কনফিগারেশন রেফারেন্স নতুন alias-এ আপডেট হয় না। যদি এমনটি ঘটে, তাহলে domain.xml-এ (বিকল্প B) ম্যানুয়ালি পরিবর্তনটি সম্পন্ন করুন।
বিকল্প B: domain.xml সম্পাদনা করুন। domain.xml ফাইলটি একই config ডিরেক্টরিতে থাকে, উদাহরণস্বরূপ glassfish/domains/domain1/config/domain.xml। নিরাপদ সম্পাদনার জন্য, প্রথমে ডোমেইনটি বন্ধ করুন:
asadmin stop-domain domain1
একটি টেক্সট এডিটরে domain.xml খুলুন এবং ডিফল্ট GlassFish সার্টিফিকেট alias, s1as, খুঁজে বের করতে Find (Ctrl+F) ব্যবহার করুন। s1as-এর প্রতিটি উপস্থিতি আপনার সার্টিফিকেট alias দিয়ে প্রতিস্থাপন করুন (এই গাইডে, myalias)। সবগুলো আপডেট করলে এটি আপনার সার্টিফিকেট দিয়ে অ্যাডমিনিস্ট্রেশন কনসোলও সুরক্ষিত করে।
domain.xml সংরক্ষণ করুন এবং ডোমেইনটি আবার শুরু করুন:
asadmin start-domain domain1
অভিনন্দন, আপনার SSL সার্টিফিকেট এখন আপনার GlassFish সার্ভারে ইনস্টল করা হয়েছে।
আপনার SSL ইনস্টলেশন পরীক্ষা করুন
সার্টিফিকেট ইনস্টল করার পর, আপনার ইনস্টলেশনের অবস্থা পরীক্ষা করতে আমাদের SSL চেকার চালান। তাৎক্ষণিক স্ক্যান যেকোনো ত্রুটি বা দুর্বলতা প্রকাশ করে (যেমন একটি অনুপস্থিত ইন্টারমিডিয়েট সার্টিফিকেট বা একটি অবিশ্বস্ত চেইন) যা ব্রাউজারগুলি আপনার সার্টিফিকেটকে কীভাবে বিবেচনা করে তা প্রভাবিত করতে পারে।
GlassFish-এর জন্য SSL সার্টিফিকেট কোথায় কিনবেন?
GlassFish-এর জন্য SSL সার্টিফিকেট কেনার সেরা জায়গা হল SSL Dragon। আমরা বাজারের সর্বনিম্ন দামের কিছু অফার করি এবং আমাদের সম্পূর্ণ SSL পণ্যের পরিসরে নিয়মিত ছাড় দিই, এবং শক্তিশালী এনক্রিপশন ও নিবেদিত সহায়তার জন্য আমরা শিল্পের সেরা SSL ব্র্যান্ডগুলির সাথে অংশীদারিত্ব করেছি। আমাদের সমস্ত SSL সার্টিফিকেট GlassFish-এর সাথে সামঞ্জস্যপূর্ণ।
আপনাকে নির্বাচন করতে সাহায্য করার জন্য, আমরা দুটি বিনামূল্যের টুল তৈরি করেছি। আমাদের SSL উইজার্ড-এর আপনার প্রকল্প এবং বাজেটের জন্য সেরা SSL ডিল খুঁজে বের করতে মাত্র কয়েক সেকেন্ড লাগে।
প্রায়ই জিজ্ঞাসিত প্রশ্নাবলী
একটি GlassFish ডোমেইন এর config ডিরেক্টরিতে দুটি JKS ফাইল সহ আসে: keystore.jks, যেটিতে প্রাইভেট কী থাকে, এবং cacerts.jks, বিশ্বস্ত CA সার্টিফিকেটের truststore। দুটিই ডিফল্টভাবে domains/domain1/config/-এ থাকে। নিরাপদ HTTP লিসেনার দ্বারা ব্যবহৃত ডিফল্ট সার্টিফিকেট alias হল s1as, এবং ডিফল্ট keystore পাসওয়ার্ড হল changeit।
সাধারণ কারণ হল প্রাইভেট কী ধারণকারী alias-এর পরিবর্তে একটি নতুন alias-এর অধীনে সাইন করা সার্টিফিকেট ইম্পোর্ট করা। keytool তখন এটিকে কোনো কী ছাড়াই একটি বিশ্বস্ত সার্টিফিকেট এন্ট্রি হিসেবে সংরক্ষণ করে, তাই GlassFish একটি TLS হ্যান্ডশেক সম্পূর্ণ করতে পারে না। বিদ্যমান প্রাইভেট-কী alias-এ (ডিফল্ট s1as) সাইন করা reply পুনরায় ইম্পোর্ট করুন। দ্বিতীয় সবচেয়ে সাধারণ কারণ হল পাসওয়ার্ড অমিল; keystore, কী, এবং ডোমেইন মাস্টার পাসওয়ার্ড সবগুলো অবশ্যই অভিন্ন হতে হবে।
প্রথমে CA বান্ডেল (রুট এবং ইন্টারমিডিয়েট সার্টিফিকেট) একটি বিশ্বস্ত এন্ট্রি হিসেবে ইম্পোর্ট করুন। এটি keytool-কে একটি সম্পূর্ণ চেইন তৈরি করতে দেয় যখন আপনি তারপর আপনার সাইন করা সার্ভার সার্টিফিকেটটি প্রাইভেট-কী alias-এ ইম্পোর্ট করেন। একটি PKCS#7 (.p7b) ফাইলের সাথে চেইনটি ইতিমধ্যে বান্ডেল করা থাকে, তাই একটি একক ইম্পোর্টই সবকিছু পরিচালনা করে।
এক ধাপে পরিবর্তনগুলি প্রয়োগ করতে asadmin restart-domain domain1 চালান, অথবা asadmin stop-domain domain1 দিয়ে ডোমেইনটি আলাদাভাবে বন্ধ করুন এবং তারপর asadmin start-domain domain1 দিয়ে শুরু করুন। নিরাপদ অ্যাডমিন সক্রিয় করার পরে এবং domain.xml সম্পাদনা করার পরে একটি পুনরায় শুরু করা প্রয়োজন।
ডিফল্টভাবে, নিরাপদ লিসেনার (http-listener-2) পোর্ট 8181 ব্যবহার করে, এবং অ্যাডমিনিস্ট্রেশন কনসোল পোর্ট 4848 ব্যবহার করে। স্ট্যান্ডার্ড পোর্টে HTTPS সার্ভ করতে, Admin কনসোলে বা domain.xml-এ লিসেনার পোর্ট পরিবর্তন করে 443 করুন।
আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!
দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10


