CouchDB সার্ভারটির নিরাপত্তা বাড়ানোর জন্য SSL (Secure Socket Layer) বা TLS (Transport Layer Security) সেটআপ করা খুবই গুরুত্বপূর্ণ। SSL ব্যবহার করে আপনি সার্ভারের সাথে সংযুক্তির সময় ডেটা এনক্রিপ্ট করতে পারেন, যা ডেটার গোপনীয়তা ও নিরাপত্তা নিশ্চিত করে। নিচে CouchDB এর সঙ্গে SSL সেটআপ করার বিস্তারিত প্রক্রিয়া আলোচনা করা হলো।
1. SSL সার্টিফিকেট তৈরি করা
CouchDB এর সঙ্গে SSL সেটআপ করতে প্রথমে আপনাকে একটি SSL সার্টিফিকেট তৈরি করতে হবে। আপনি নিজে একটি Self-signed certificate তৈরি করতে পারেন অথবা একটি বিশ্বস্ত সার্টিফিকেট অথরিটি (CA) থেকে সার্টিফিকেট কিনতে পারেন।
a. Self-Signed SSL সার্টিফিকেট তৈরি করা
SSL সার্টিফিকেট তৈরি করতে OpenSSL ব্যবহার করা যেতে পারে। নিচের কমান্ডটি দিয়ে সার্টিফিকেট এবং প্রাইভেট কি তৈরি করা যাবে:
openssl req -new -x509 -days 365 -nodes -out /etc/couchdb/couchdb-cert.pem -keyout /etc/couchdb/couchdb-key.pem
এখানে:
- /etc/couchdb/couchdb-cert.pem: সার্টিফিকেট ফাইল।
- /etc/couchdb/couchdb-key.pem: প্রাইভেট কি ফাইল।
এটি ১ বছরের জন্য একটি Self-signed certificate তৈরি করবে। আপনি এই সার্টিফিকেট ফাইল দুটি CouchDB কনফিগারেশনে ব্যবহার করবেন।
2. CouchDB কনফিগারেশন ফাইল আপডেট করা
CouchDB এর কনফিগারেশন ফাইলটি local.ini এবং default.ini ফাইলের মধ্যে থাকে, যা সাধারণত /opt/couchdb/etc বা /etc/couchdb ডিরেক্টরিতে অবস্থান করে। SSL সেটআপ করার জন্য এই ফাইলগুলোতে কিছু পরিবর্তন করতে হবে।
a. local.ini ফাইলে SSL কনফিগারেশন
CouchDB এর কনফিগারেশন ফাইলটি খুলুন:
sudo nano /opt/couchdb/etc/local.ini[httpd] সেকশনটি খুঁজে বের করুন এবং SSL সেটিংস যোগ করুন:
[httpd] enable_ssl = true ssl_cert_file = /etc/couchdb/couchdb-cert.pem ssl_key_file = /etc/couchdb/couchdb-key.pem ssl_version = tlsv1.2 ssl_ciphers = HIGH:!aNULL:!MD5এখানে:
- enable_ssl: SSL সক্রিয় করতে হবে। এটি
trueকরতে হবে। - ssl_cert_file: SSL সার্টিফিকেট ফাইলের পথ।
- ssl_key_file: প্রাইভেট কি ফাইলের পথ।
- ssl_version: TLS সংস্করণ নির্ধারণ করুন (যেমন, TLSv1.2)।
- ssl_ciphers: SSL সাইফারগুলি নির্ধারণ করুন যা সিকিউরিটি প্রদান করবে।
- enable_ssl: SSL সক্রিয় করতে হবে। এটি
3. CouchDB সার্ভিস রিস্টার্ট করা
SSL কনফিগারেশন সম্পূর্ণ করার পর, CouchDB সার্ভিসটি পুনরায় রিস্টার্ট করতে হবে যাতে নতুন পরিবর্তনগুলি কার্যকর হয়।
sudo systemctl restart couchdb
অথবা, যদি আপনি service কমান্ড ব্যবহার করতে চান:
sudo service couchdb restart
4. SSL কনফিগারেশন পরীক্ষা করা
SSL কনফিগারেশন সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করতে, আপনি ব্রাউজারে CouchDB সার্ভার অ্যাক্সেস করতে পারেন HTTPS প্রোটোকলের মাধ্যমে। উদাহরণস্বরূপ:
https://your-server-ip:5984
এখানে:
- your-server-ip: আপনার CouchDB সার্ভারের আইপি ঠিকানা।
এটি HTTPS প্রোটোকল দিয়ে সংযোগ স্থাপন করবে এবং যদি SSL সঠিকভাবে কনফিগার করা থাকে, তবে ব্রাউজারে নিরাপত্তা চিহ্ন প্রদর্শিত হবে।
b. SSL পরীক্ষা করতে CURL ব্যবহার করা
CURL কমান্ডের মাধ্যমে আপনি SSL সংযোগ পরীক্ষা করতে পারেন:
curl -X GET https://localhost:5984 -k
এখানে:
-kফ্ল্যাগ ব্যবহার করলে SSL সার্টিফিকেটের ভ্যালিডিটি চেক করা হবে না, যা self-signed সার্টিফিকেটের জন্য উপযুক্ত।
5. তৃতীয় পক্ষের CA থেকে SSL সার্টিফিকেট ব্যবহার
যদি আপনি Self-signed certificate ব্যবহার না করতে চান এবং তৃতীয় পক্ষের CA থেকে একটি SSL সার্টিফিকেট ব্যবহার করতে চান, তবে আপনি সঠিক SSL সার্টিফিকেট এবং CA সার্টিফিকেট ইনস্টল করতে হবে। এই সার্টিফিকেটগুলি পাবেন সার্টিফিকেট অথরিটি (যেমন: Let's Encrypt, Comodo, Digicert) থেকে।
- CA সার্টিফিকেট ইনস্টল করুন এবং উপরের কনফিগারেশনে ssl_cert_file এবং ssl_key_file ফিল্ডগুলিতে সার্টিফিকেটের পথ নির্ধারণ করুন।
- CouchDB রিস্টার্ট করুন এবং নতুন সার্টিফিকেটের সাথে HTTPS সংযোগ পরীক্ষা করুন।
উপসংহার
CouchDB-তে SSL সেটআপ নিরাপদ HTTPS সংযোগ স্থাপন করার জন্য গুরুত্বপূর্ণ। এটি ডেটার গোপনীয়তা ও নিরাপত্তা সুনিশ্চিত করে, বিশেষ করে যখন ডেটাবেসটি পাবলিক নেটওয়ার্কে ব্যবহৃত হয়। Self-signed certificate বা CA সার্টিফিকেট ব্যবহার করে আপনি সহজেই SSL সংযোগ স্থাপন করতে পারেন।
Read more