bg-tutorials

JBoss সার্ভারে কীভাবে CSR তৈরি করবেন

এই টিউটোরিয়ালে দেখানো হয়েছে জাভা কীটুল (keytool) ইউটিলিটি ব্যবহার করে JBoss EAP এবং WildFly-তে কীভাবে CSR (সার্টিফিকেট সাইনিং রিকোয়েস্ট) তৈরি করবেন। এই প্রক্রিয়াটি দুটি কমান্ডের মাধ্যমে সম্পন্ন হয়: প্রথমে keytool -genkeypair একটি কীস্টোর এবং একটি নির্বাচিত অ্যালিয়াসের অধীনে একটি প্রাইভেট কী তৈরি করে, তারপর keytool -certreq সংশ্লিষ্ট CSR এক্সপোর্ট করে যেখানে Subject Alternative Names থাকে যা CA ইস্যু করবে। সিগনেচার করা সার্টিফিকেট ইমপোর্ট করার সময় একই অ্যালিয়াস পুনরায় ব্যবহার করা হয়, ফলে কী, CSR এবং পরবর্তী সার্টিফিকেট – সবকিছুই একটি জায়গায় থাকে।

সংস্করণ সম্পর্কে দ্রষ্টব্য: আধুনিক JBoss হলো Red Hat JBoss Enterprise Application Platform (EAP) 8, যা ফেব্রুয়ারি ২০২৪ সালে প্রকাশিত এবং আপস্ট্রিম WildFly প্রজেক্টের উপর ভিত্তি করে তৈরি (WildFly 41, জুলাই ২০২৬ সালে প্রকাশিত, বর্তমান কমিউনিটি রিলিজ)। দুটোই elytron সাবসিস্টেম এবং Undertow-এর https-listener এর মাধ্যমে HTTPS পরিচালনা করে; পুরনো গাইডে দেখানো Tomcat বা Jetty কানেক্টর কনফিগারেশন এখন প্রযোজ্য নয়। তবে CSR তৈরির পদক্ষেপটি সব সাম্প্রতিক সংস্করণে একইরকম, কারণ এটি একটি সাধারণ জাভা keytool অপারেশন।

আপনার যা প্রয়োজন হবে

  • একটি জাভা ইনস্টলেশন (JDK বা JRE) যাতে keytool কমান্ড উপলব্ধ থাকে। JBoss EAP 8.0 জাভা ১১ (deprecated) বা ১৭-তে চলে, EAP 8.1 জাভা ২১ যুক্ত করে, এবং WildFly 41 জাভা ১৭, ২১ বা ২৫-এ চলে (জাভা ১১ আপস্ট্রিমে আর সমর্থিত নয়)। keytool -help দিয়ে নিশ্চিত করুন।
  • যে JBoss সার্ভারে প্রাইভেট কী থাকবে সেখানে শেল বা টার্মিনাল অ্যাক্সেস। প্রাইভেট কী অবশ্যই এই সার্ভারেই থাকতে হবে।
  • যে সম্পূর্ণ যোগ্য ডোমেইন নাম (FQDN) আপনি সুরক্ষিত করতে চান, যেমন www.yourdomain.com, এবং SAN ফিল্ডে কভার করতে চান এমন যেকোনো অতিরিক্ত হোস্টনেম।
  • CSR-এর Distinguished Name-এর জন্য আপনার প্রতিষ্ঠানের আইনি তথ্য (দেশ, রাজ্য, শহর, প্রতিষ্ঠানের নাম)।

পদক্ষেপ ১: কীস্টোর এবং প্রাইভেট কী তৈরি করুন

আপনি যদি ইতিমধ্যে আপনার CSR তৈরি করে থাকেন, তাহলে সরাসরি CSR জমা দিন এবং তারপর JBoss-এ আপনার SSL সার্টিফিকেট ইনস্টল করুন অংশে চলে যান।

JBoss সার্ভারে একটি টার্মিনাল খুলুন এবং PKCS12 ফরম্যাটে একটি নতুন কীস্টোর তৈরি করুন। PKCS12 হলো আধুনিক, পোর্টেবল স্ট্যান্ডার্ড (RFC 7292) এবং JDK 9 থেকে জাভায় এটি ডিফল্ট কীস্টোর ফরম্যাট; পুরনো প্রোপাইটারি JKS ফরম্যাট এখন deprecated। রান করুন:

keytool -genkeypair 
  -alias jboss 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

ফ্ল্যাগগুলোর অর্থ:

  • -alias jboss: কীস্টোরের ভেতরের এন্ট্রি নাম। এমন একটি লেবেল বাছুন যা আপনি চিনতে পারবেন (সাধারণত jboss, server, বা আপনার ডোমেইন)। এটি লিখে রাখুন। CSR তৈরি করার সময় এবং সিগনেচার করা সার্টিফিকেট ইমপোর্ট করার সময় আপনাকে ঠিক এই অ্যালিয়াসটিই পুনরায় ব্যবহার করতে হবে। ইমপোর্টের সময় ভিন্ন অ্যালিয়াস ব্যবহার করা keytool-এর সবচেয়ে সাধারণ ভুল।
  • -keyalg RSA -keysize 2048: ২০৪৮-বিট RSA কী বর্তমান পাবলিক সর্বনিম্ন মান। আপনি যদি কয়েক বছর ধরে রাখার উদ্দেশ্যে নতুন কীস্টোর তৈরি করেন, তাহলে ৩০৭২ বিট একটি যুক্তিসঙ্গত আপগ্রেড। অধিকাংশ পাবলিক CA-ও ECDSA (-keyalg EC -groupname secp256r1) গ্রহণ করে, যদি আপনি ছোট, দ্রুত কী পছন্দ করেন। -groupname অপশনের জন্য JDK 13 বা তার পরের সংস্করণ প্রয়োজন; জাভা ১১-তে এর পরিবর্তে -keyalg EC -keysize 256 ব্যবহার করুন, যা একই secp256r1 কার্ভ নির্বাচন করে। keytool একই কমান্ডে দুটি অপশন প্রত্যাখ্যান করে।
  • -storetype PKCS12: আধুনিক PKCS12 কীস্টোর জোর করে ব্যবহার করে। এর সাথে মিলে যাওয়া এক্সটেনশন হলো .p12 (বা .pfx)।
  • -keystore yourdomain.p12: তৈরি করা কীস্টোর ফাইল। নামটি এমন কিছু দিয়ে প্রতিস্থাপন করুন যা আপনি চিনতে পারবেন, এবং এই ফাইলটি সুরক্ষিত রাখুন; এতে আপনার প্রাইভেট কী থাকে।
  • -validity 825: কীস্টোরের ভেতরে থাকা সেলফ-সাইনড প্লেসহোল্ডার সার্টিফিকেটটি কতদিন বৈধ থাকবে। CA থেকে পাওয়া সিগনেচার করা সার্টিফিকেট পরে এটি প্রতিস্থাপন করবে, তাই এই সঠিক মূল্য প্রোডাকশন লাইফটাইমকে প্রভাবিত করে না।

এরপর keytool একটি কীস্টোর পাসওয়ার্ড চাইবে। একটি শক্তিশালী পাসওয়ার্ড বাছুন এবং আপনার সিক্রেটস ম্যানেজারে সংরক্ষণ করুন: এটি পরবর্তী প্রতিটি keytool কমান্ডের জন্য এবং JBoss-এ কনফিগার করা Elytron credential-reference-এর জন্য প্রয়োজন হবে। PKCS12 কীস্টোরের ক্ষেত্রে কী পাসওয়ার্ড এবং কীস্টোর পাসওয়ার্ড একই থাকে, তাই মনে রাখার জন্য কেবল একটি পাসওয়ার্ড আছে।

পদক্ষেপ ২: আপনার প্রতিষ্ঠানের তথ্য প্রবেশ করান (DN)

keytool এখন Distinguished Name (DN) চাইবে: পরিচিতি ক্ষেত্রগুলো যা CSR-এর ভেতরে যায়। প্রতিটি প্রম্পটের উত্তর দিন আপনার প্রতিষ্ঠানের সঠিক, আইনি মূল্য দিয়ে। যতিচিহ্ন এবং সঠিকতা গুরুত্বপূর্ণ, কারণ CA পাবলিক ব্যবসায়িক রেকর্ডের সাথে মিল না থাকলে প্রত্যাখ্যান করবে।

  • প্রথম এবং শেষ নাম (CN): এটা keytool-এর নিজস্ব শব্দচয়ন, কিন্তু এটি আসলে Common Name ক্ষেত্র। আপনি যেই FQDN সুরক্ষিত করছেন তার সঠিক নাম প্রবেশ করান, যেমন www.yourdomain.com, বা একটি ওয়াইল্ডকার্ড যেমন *.yourdomain.com। কোনো ব্যক্তির নাম প্রবেশ করাবেন না।
  • অর্গানাইজেশনাল ইউনিট (OU): এই ক্ষেত্রটি আর পাবলিক CA দ্বারা ইস্যু করা হয় না এবং এটি বাদ দেওয়াই ভালো। মনে রাখবেন Enter চাপলে এটি খালি থাকে না: keytool নিজস্ব ডিফল্ট মূল্য বসিয়ে দেয়, ফলে DN-এ OU=Unknown থাকে, যা তারপর CSR-এ চলে যায়। প্রকৃতপক্ষে ক্ষেত্রটি বাদ দিতে, নিচের নন-ইন্টারঅ্যাক্টিভ -dname ফর্ম ব্যবহার করুন এবং স্ট্রিং থেকে OU বাদ দিন।
  • প্রতিষ্ঠান (O): আপনার কোম্পানির সম্পূর্ণ আইনি নাম, যেমন Your Company LLC। OV এবং EV সার্টিফিকেটের জন্য এটি প্রয়োজনীয়; DV সার্টিফিকেটের জন্য অনেক CA এটিকে তথ্যগত হিসেবে গ্রহণ করে, তাই এটি পূরণ করাই খালি রাখার চেয়ে নিরাপদ।
  • শহর বা অঞ্চল (L): সম্পূর্ণ শহরের নাম, যেমন San Jose। সংক্ষিপ্ত করবেন না।
  • রাজ্য বা প্রদেশ (ST): সম্পূর্ণ রাজ্য বা প্রদেশের নাম, যেমন California। দুই অক্ষরের কোড ব্যবহার করবেন না।
  • দেশের কোড (C): দুই অক্ষরের ISO দেশের কোড, যেমন US, GB, DE।

শেষ প্রম্পটের পর, keytool একটি সারাংশ দেখাবে, যেমন CN=www.yourdomain.com, OU=Unknown, O=Your Company LLC, L=San Jose, ST=California, C=US। নিশ্চিত করতে yes টাইপ করুন। এখন কীস্টোর ফাইলে একটি এন্ট্রি থাকবে: আপনার অ্যালিয়াস, যাতে প্রাইভেট কী এবং একটি সেলফ-সাইনড প্লেসহোল্ডার সার্টিফিকেট থাকে।

আপনি চাইলে একটি নন-ইন্টারঅ্যাক্টিভ কমান্ড ব্যবহার করতে পারেন, DN ইনলাইনে দিয়ে প্রম্পটগুলো এড়িয়ে যেতে পারেন:

keytool -genkeypair 
  -alias jboss 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

পদক্ষেপ ৩: SAN সহ CSR তৈরি করুন

আধুনিক ব্রাউজার এবং TLS ক্লায়েন্টগুলো Subject Alternative Name (SAN) এক্সটেনশনের বিপরীতে সার্টিফিকেট যাচাই করে, একা Common Name-এর বিপরীতে নয়। সরাসরি CSR-তে SAN রিকোয়েস্ট করুন যাতে CA ইস্যু করা সার্টিফিকেটে সেগুলো অন্তর্ভুক্ত করে। পদক্ষেপ ১ থেকে একই অ্যালিয়াস এবং কীস্টোর ব্যবহার করুন:

keytool -certreq 
  -alias jboss 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

ফ্ল্যাগগুলোর অর্থ:

  • -alias jboss: পদক্ষেপ ১-এর অ্যালিয়াসের সাথে মিলতে হবে। এই অ্যালিয়াসের প্রাইভেট কী দিয়েই রিকোয়েস্ট সাইন করা হয়।
  • -keystore yourdomain.p12: পদক্ষেপ ১-এর কীস্টোরের সাথে মিলতে হবে।
  • -file yourdomain.csr: CSR-এর জন্য আউটপুট ফাইলের নাম।
  • -ext san=dns:…: Subject Alternative Name এক্সটেনশন। সার্টিফিকেট যেসব হোস্টনেম কভার করবে তার সবগুলো তালিকাভুক্ত করুন, apex ডোমেইন (yourdomain.com) এবং www সাবডোমেইন দুটোই অন্তর্ভুক্ত করে। কমা দিয়ে আলাদা করে আরও এন্ট্রি যুক্ত করুন, যেমন dns:api.yourdomain.com।

keytool কীস্টোর পাসওয়ার্ড চাইবে এবং বর্তমান ডিরেক্টরিতে CSR-টি yourdomain.csr নামে লিখে দেবে।

গুরুত্বপূর্ণ: আপনার অ্যালিয়াস এবং কীস্টোর সংরক্ষণ করুন

JBoss-এ keytool-এর সবচেয়ে সাধারণ ভুল হলো সিগনেচার করা সার্টিফিকেট একটি নতুন অ্যালিয়াসের অধীনে ইমপোর্ট করা। এটি করলে সার্টিফিকেট একটি স্বতন্ত্র ট্রাস্টেড এন্ট্রি হিসেবে সংরক্ষিত হয়, যার সাথে কোনো প্রাইভেট কী যুক্ত থাকে না, এবং Elytron কী-ম্যানেজার একটি TLS সেশন শুরু করতে ব্যর্থ হবে। সব সময় সিগনেচার করা রিপ্লাই একই অ্যালিয়াসে ইমপোর্ট করুন যেখানে প্রাইভেট কী আছে (পদক্ষেপ ১-এর অ্যালিয়াস)।

টার্মিনাল বন্ধ করার আগে এই তিনটি মূল্য নোট করে নিন:

  • অ্যালিয়াস (এই গাইডে, jboss)।
  • কীস্টোর ফাইলের পথ (যেমন yourdomain.p12; JBoss-এ এটি সাধারণত $JBOSS_HOME/standalone/configuration/-এ থাকে)।
  • কীস্টোর পাসওয়ার্ড।

আপনি নিশ্চিত না হলে কোন অ্যালিয়াসে আপনার কী আছে, কীস্টোরের বিষয়বস্তু তালিকাভুক্ত করুন এবং যেই এন্ট্রির টাইপ PrivateKeyEntry সেটি খুঁজুন:

keytool -list -v -keystore yourdomain.p12

পদক্ষেপ ৪: জমা দেওয়ার আগে CSR যাচাই করুন

CA যাচাই করার আগে DN-এ টাইপো বা অনুপস্থিত SAN ধরে ফেলুন। keytool দিয়ে CSR প্রিন্ট করুন:

keytool -printcertreq -file yourdomain.csr

অথবা, OpenSSL ইনস্টল করা থাকলে, আপনি এর পরিবর্তে এটিও ব্যবহার করতে পারেন:

openssl req -noout -text -in yourdomain.csr

আউটপুটে তিনটি বিষয় নিশ্চিত করুন: Subject-এ আপনার সঠিক DN দেখাচ্ছে, Subject Alternative Name-এ আপনার প্রয়োজনীয় সব হোস্টনেম তালিকাভুক্ত আছে, এবং Public-Key-এর আকার আপনার চাওয়া মূল্যের সাথে মিলছে (২০৪৮-বিট RSA, বা আপনি যা বেছেছেন)। একই যাচাইয়ের জন্য আপনি ব্রাউজারে আমাদের CSR Decoder-এ CSR পেস্ট করতে পারেন।

পদক্ষেপ ৫: আপনার সার্টিফিকেট অথরিটির কাছে CSR জমা দিন

কোনো টেক্সট এডিটরে yourdomain.csr খুলুন। ফাইলটি সাদামাটা টেক্সট, যা -----BEGIN NEW CERTIFICATE REQUEST----- দিয়ে শুরু হয় এবং -----END NEW CERTIFICATE REQUEST----- দিয়ে শেষ হয়। NEW শব্দটি keytool নিজেই লেখে, এবং এটি প্রত্যাশিত: বিষয়বস্তু একটি স্ট্যান্ডার্ড PKCS#10 রিকোয়েস্ট যা প্রতিটি CA গ্রহণ করে। সম্পূর্ণ ব্লক কপি করুন, হেডার এবং ফুটার লাইন সহ, এবং আপনার CA-তে চেকআউটের সময় CSR ক্ষেত্রে পেস্ট করুন। Windows-এ, সম্পূর্ণ টেক্সট নিতে Ctrl + A তারপর Ctrl + C ব্যবহার করুন; macOS-এ, Cmd + A তারপর Cmd + C ব্যবহার করুন।

অন্য কিছু করার আগে কীস্টোর ফাইলের ব্যাকআপ নিন। আপনি yourdomain.p12 হারালে প্রাইভেট কীও হারাবেন, অর্থাৎ CA থেকে ফেরত পাওয়া সিগনেচার করা সার্টিফিকেটটি অকার্যকর হয়ে যাবে এবং আপনাকে একটি নতুন CSR দিয়ে আবার শুরু করতে হবে।

CA আপনার রিকোয়েস্ট যাচাই করে সার্টিফিকেট ইস্যু করার পর, JBoss-এ আপনার SSL সার্টিফিকেট কীভাবে ইনস্টল করবেন সেটি চালিয়ে যান। আপনি সিগনেচার করা সার্টিফিকেটটি একই কীস্টোরে একই অ্যালিয়াসে ইমপোর্ট করবেন, তারপর Undertow-এর https-listener-এর সাথে সংযুক্ত একটি Elytron key-store, key-manager, এবং server-ssl-context থেকে সেই কীস্টোর রেফারেন্স করবেন।

রিনিউয়ালের জন্য আমি কি CSR পুনরায় ব্যবহার করতে পারি?

আপনি পারেন, কিন্তু সুরক্ষার সর্বোত্তম চর্চা হলো প্রতিটি সার্টিফিকেটের জন্য একটি নতুন কীস্টোর, একটি নতুন প্রাইভেট কী এবং একটি নতুন CSR তৈরি করা। প্রতিটি রিনিউয়ালের জন্য একটি নতুন কী পুরনো কী কখনো হ্যাক হলে তার প্রভাব সীমিত করে, এবং প্রক্রিয়াটি একই থাকে: একটি নতুন কীস্টোর ফাইলের বিপরীতে keytool -genkeypair এবং keytool -certreq চালান। CA/Browser ফোরামের নিয়মের অধীনে পাবলিক TLS সার্টিফিকেটের মেয়াদ কমছে (১৫ মার্চ ২০২৬ পর্যন্ত ২০০ দিন, ২০২৭ সালে ১০০ দিনে নেমে আসবে এবং ২০২৯ সালে ৪৭ দিনে), তাই আরও ঘন ঘন CSR চক্রের জন্য পরিকল্পনা করুন, বা আপনার CA যদি ACME সমর্থন করে তাহলে ইস্যুকরণ স্বয়ংক্রিয় করুন।

আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!

দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

উড়ন্ত একটি ড্রাগনের একটি বিস্তারিত চিত্র
লিখেছেন

SSL শংসাপত্রে বিশেষজ্ঞ অভিজ্ঞ বিষয়বস্তু লেখক। জটিল সাইবারসিকিউরিটি বিষয়গুলিকে পরিষ্কার, আকর্ষক সামগ্রীতে রূপান্তর করা। প্রভাবশালী বর্ণনার মাধ্যমে ডিজিটাল নিরাপত্তার উন্নতিতে অবদান রাখুন।

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.