SSL/TLS সার্টিফিকেট তৈরি করার প্রক্রিয়া অনেক লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য একটি সাধারণ কাজ। ভাগ্যক্রমে, আপনি একজন প্রশাসক না হলেও, OpenSSL ব্যবহার করে এটি করা সহজ, একটি ওপেন-সোর্স টুল যা অনেক লিনাক্স ডিস্ট্রিবিউশনে ডিফল্টরূপে ইনস্টল করা থাকে। এখানে আমরা ব্যাখ্যা করছি ওপেনএসএসএল কী, কীভাবে এটি ইনস্টল করতে হয় এবং সবচেয়ে গুরুত্বপূর্ণভাবে, আপনার সিস্টেমে SSL এবং TLS শংসাপত্র তৈরি করতে কীভাবে এটি ব্যবহার করতে হয়।
OpenSSL কি?
OpenSSL হল একটি লাইব্রেরি যা ওপেন-সোর্স SSL এবং TLS ইমপ্লিমেন্টেশন প্রদান করার জন্য OpenSSL প্রজেক্ট দ্বারা তৈরি করা হয়েছে নেটওয়ার্ক ট্রাফিকের এনক্রিপশনের জন্য। এটি বিভিন্ন ইউনিক্স-ভিত্তিক ডিস্ট্রিবিউশনের জন্য সহজেই উপলব্ধ এবং সার্টিফিকেট, RSA ব্যক্তিগত কী তৈরি করতে এবং সাধারণ ক্রিপ্টোগ্রাফি-সম্পর্কিত কাজগুলি সম্পাদন করতে ব্যবহার করা যেতে পারে৷
স্ব-স্বাক্ষরিত SSL সার্টিফিকেটের সীমাবদ্ধতা
আপনি যখন একটি SSL শংসাপত্র তৈরি করতে OpenSSL ব্যবহার করেন, তখন এটিকে "স্ব-স্বাক্ষরিত" হিসাবে বিবেচনা করা হয়। এর মানে হল যে SSL শংসাপত্রটি তার নিজস্ব ব্যক্তিগত কী দিয়ে স্বাক্ষরিত এবং একটি শংসাপত্র কর্তৃপক্ষ (CA) থেকে নয়।
যেমন, SSL শংসাপত্র "বিশ্বস্ত" হতে পারে না এবং কোনো পাবলিক ফেসিং সাইটের জন্য ব্যবহার করা উচিত নয়৷ যদি ব্যবহার করা হয়, ব্যবহারকারীরা সম্ভবত তাদের ব্রাউজার থেকে শংসাপত্র সম্পর্কে সতর্কতা দেখতে পাবেন৷
একটি স্ব-স্বাক্ষরিত শংসাপত্র স্থানীয় বিকাশের জন্য বা ব্যাকগ্রাউন্ডে চলমান যেকোন অ্যাপের জন্য দরকারী যা ইন্টারনেটের মুখোমুখি হয় না৷
বিকল্পভাবে, আপনি LetsEncrypt ব্যবহার করতে পারেন বা একটি বিশ্বস্ত কর্তৃপক্ষ দ্বারা যাচাইকৃত একটি শংসাপত্র পেতে পারেন, যেমন Comodo CA৷
ইনস্টলেশন
বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে ইতিমধ্যেই ডিফল্টরূপে OpenSSL-এর একটি সংস্করণ রয়েছে। যদি না হয়, আপনি সহজেই এটি ইনস্টল করতে পারেন৷
৷
আপনি apt
ব্যবহার করে উবুন্টু এবং ডেবিয়ানে এটি ইনস্টল করতে পারেন কমান্ড:
sudo apt install openssl
CentOS এ (বা এর বিকল্প), আপনি yum
ব্যবহার করে এটি ইনস্টল করতে পারেন কমান্ড:
sudo yum install openssl
এছাড়াও আপনি সহজেই এটির ওয়েবসাইট থেকে একটি “.tar.gz” ফাইল হিসেবে ডাউনলোড করতে পারেন।
প্রাথমিক ব্যবহার
এখন যেহেতু আপনি OpenSSL ইনস্টল করেছেন, আমরা প্রোগ্রামটি প্রদান করে এমন কিছু মৌলিক ফাংশন দেখতে পারি৷
আপনি আপনার OpenSSL ইনস্টলেশন সম্পর্কে সংস্করণ এবং অন্যান্য প্রাসঙ্গিক তথ্য দেখে শুরু করতে পারেন:
openssl version -a
আপনি প্রদত্ত ম্যানুয়ালটি দেখতে পারেন:
openssl help
কনফিগারেশন ফাইল ব্যবহার করে একটি সার্টিফিকেট তৈরি করা
OpenSSL ব্যবহার করে একটি শংসাপত্র তৈরি করা অনেক উপায়ে সম্ভব। তাদের মধ্যে একটি হল একটি কনফিগারেশন ফাইল ব্যবহার করে যা প্রতিষ্ঠান সম্পর্কে বিস্তারিত উল্লেখ করবে।
শুরু করতে, আপনি "config.conf" নামে একটি কনফিগারেশন ফাইল তৈরি করতে পারেন এবং ন্যানো ব্যবহার করে এটি সম্পাদনা করতে পারেন:
sudo nano example.conf
এখানে কনফিগারেশন ফাইলের বিষয়বস্তুর একটি উদাহরণ:
[req] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext x509_extensions= v3_ca distinguished_name = dn [dn] C = US ST = California L = Los Angeles O = Org OU = Sales emailAddress = [email protected] CN = www.org.test.com [ v3_ca ] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always basicConstraints = CA:true [req_ext] subjectAltName = @alt_names [alt_names] DNS.1 = test.example.com
আপনি ফাইলে এটি কপি এবং পেস্ট করতে পারেন এবং আপনার প্রতিষ্ঠানের তথ্য প্রতিফলিত করতে প্রয়োজনীয় পরিবর্তন করতে পারেন।
এর পরে, আপনাকে একটি RSA ব্যক্তিগত কী তৈরি করতে হবে, যা তারপর একটি রুট শংসাপত্র তৈরি করতে ব্যবহার করা হবে -:
openssl genrsa -out example.key 2048
-out
এই ক্ষেত্রে ফ্ল্যাগ ব্যবহার করা হয় কী-এর নাম নির্দিষ্ট করতে যা তৈরি করা হবে। 2048 বিটের একটি কী আকারও নির্দিষ্ট করা হয়েছে, যা RSA কীগুলির জন্য ডিফল্ট৷
এছাড়াও আপনাকে একটি সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR):
তৈরি করতে হবেopenssl req -new -key example.key -out example.csr -config example.conf
এই ক্ষেত্রে, -key
পতাকা RSA কী, -out
নির্দিষ্ট করতে ব্যবহৃত হয় পতাকা CSR ফাইলের নাম এবং -config
নির্দিষ্ট করে ফ্ল্যাগ কনফিগার ফাইলের নাম নির্দিষ্ট করতে ব্যবহৃত হয়।
এর পরে, আপনি একটি মূল শংসাপত্র তৈরি করতে পারেন, যা আমাদের চূড়ান্ত শংসাপত্র তৈরি করতে ব্যবহৃত হয়:
openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf
এই রুট সার্টিফিকেট তৈরি করার প্রক্রিয়ায়, -sha256
বার্তা ডাইজেস্ট হিসাবে SHA256 নির্দিষ্ট করতে পতাকা ব্যবহার করা হয়।
এখন, চূড়ান্ত পদক্ষেপের জন্য, আমরা শেষ পর্যন্ত আমাদের শংসাপত্র তৈরি করতে নিম্নলিখিতটি টাইপ করতে পারি:
openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt
-CA
পতাকা মূল শংসাপত্র নির্দিষ্ট করে, -CAkey
পতাকা ব্যক্তিগত কী এবং -extfile
নির্দিষ্ট করে কনফিগারেশন ফাইলের নাম উল্লেখ করে। “final.crt” ফাইলটি হবে আপনার পছন্দের SSL সার্টিফিকেট।
কোন কনফিগারেশন ফাইল ছাড়াই একটি শংসাপত্র তৈরি করা হচ্ছে
বিকল্পভাবে, আপনি কনফিগারেশন ফাইল ছাড়াই OpenSSL ব্যবহার করে একটি শংসাপত্র তৈরি করতে পারেন।
আপনি একটি RSA ব্যক্তিগত কী তৈরি করে শুরু করতে পারেন:
openssl genrsa -out example.key 2048
এর পরে, আপনাকে একটি CSR তৈরি করতে হবে:
openssl req -new -key example.key -out example.csr
একটি CSR তৈরি করার সময়, আপনাকে আপনার প্রতিষ্ঠান সম্পর্কে প্রশ্নের উত্তর দেওয়ার জন্য অনুরোধ করা হবে।
অবশেষে, আমরা শংসাপত্র নিজেই তৈরি করতে পারি:
openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
কী এবং সার্টিফিকেটের যাচাইকরণ
কী এবং সার্টিফিকেট সহজেই ওপেনএসএসএল ব্যবহার করে চেক করা হয় এবং যাচাই করা হয়, -check
পতাকা:
openssl rsa -check -in example.key
আপনি শংসাপত্র স্বাক্ষরের অনুরোধগুলি পরীক্ষা করতে পারেন:
openssl req -text -noout -in example.csr
এবং সার্টিফিকেটও:
openssl x509 -text -noout -in example.crt
প্রায়শই জিজ্ঞাসিত প্রশ্ন
1. আমাকে কি এখনও হার্টব্লিড নিয়ে চিন্তা করতে হবে?
হার্টব্লিড (CVE-2014-0160) একটি পুরানো দুর্বলতা যা 2014 সালে OpenSSL-এ পাওয়া গেছে। TLS-সার্ভার এবং OpenSSL চালানো ক্লায়েন্ট উভয়ই প্রভাবিত হয়েছিল। একটি প্যাচ আবিষ্কারের কয়েকদিন পরে দ্রুত প্রকাশ করা হয়েছিল, এবং যতক্ষণ না আপনি OpenSSL-এর একটি আধুনিক এবং আপ-টু-ডেট সংস্করণ চালাচ্ছেন ততক্ষণ এই দুর্বলতাটি 2022-এ চিন্তা করার মতো কিছু নয়।
আপনি যদি ডেবিয়ান এবং উবুন্টু-ভিত্তিক সিস্টেমে ওপেনএসএসএল ব্যবহার করেন, আপনি সর্বদা নিম্নলিখিত কমান্ডগুলি চালিয়ে এটি আপডেট করতে পারেন:
sudo apt update && sudo apt upgrade openssl
2. SSL শংসাপত্রের মেয়াদ শেষ হওয়ার আগে কতক্ষণ স্থায়ী হয়?
এটি শংসাপত্র তৈরি করার সময় আপনি যে মান চয়ন করেন তার উপর নির্ভর করে। এটি -days
ব্যবহার করে নির্দিষ্ট করা যেতে পারে একটি শংসাপত্র তৈরি করার সময় পতাকা।