bg-tutorials

lighttpd-এ SSL সার্টিফিকেট ইনস্টল করার পদ্ধতি

এই টিউটোরিয়ালে, আপনি শিখবেন Lighttpd-এ কীভাবে একটি SSL সার্টিফিকেট ইনস্টল করবেন। এই গাইডে বর্তমান কনফিগারেশন (mod_openssl মডিউল সহ পৃথক সার্টিফিকেট এবং প্রাইভেট কী), পুরনো বিল্ডের জন্য লিগ্যাসি সম্মিলিত-PEM পদ্ধতি, এবং রিস্টার্ট করার আগে একটি দ্রুত কনফিগারেশন টেস্ট কভার করা হয়েছে।

আমরা একটি ভিডিও রেকর্ড করেছি যা আপনাকে পুরো প্রক্রিয়াটি দেখায়। আপনি যদি টেক্সট ভার্সন পছন্দ করেন, তাহলে নিচে পড়তে থাকুন।

Lighttpd-এ একটি CSR কোড তৈরি করুন

আমরা CSR (Certificate Signing Request) তৈরি করা দিয়ে শুরু করব। CSR হল এনকোড করা টেক্সটের একটি ব্লক যা আপনি একটি Certificate Authority-তে SSL সার্টিফিকেটের জন্য আবেদন করতে পাঠান। আপনার কাছে দুটি বিকল্প রয়েছে:

  • স্বয়ংক্রিয়ভাবে CSR তৈরি করতে আমাদের CSR Generator ব্যবহার করুন।
  • Lighttpd-এ কীভাবে একটি CSR তৈরি করবেন তার উপর আমাদের ধাপে ধাপে টিউটোরিয়াল অনুসরণ করুন।

যেকোনো টেক্সট এডিটর দিয়ে CSR ফাইলটি খুলুন এবং এর সম্পূর্ণ বিষয়বস্তু, BEGIN CERTIFICATE REQUEST এবং END CERTIFICATE REQUEST লাইন সহ, SSL অর্ডার প্রক্রিয়ার সময় সংশ্লিষ্ট বক্সে কপি করুন। CSR-টি Certificate Authority-তে জমা দিন এবং যাচাইকরণের জন্য অপেক্ষা করুন। CA আপনার SSL সার্টিফিকেট ইস্যু করার পরে, নিচের ইনস্টলেশন চালিয়ে যান।

Lighttpd-এ একটি SSL সার্টিফিকেট ইনস্টল করুন

ধাপ ১: আপনার সার্টিফিকেট ফাইলগুলি প্রস্তুত করুন

যাচাইকরণের পরে, Certificate Authority আপনাকে ইমেইলে সার্টিফিকেট ফাইলগুলি পাঠায়। আর্কাইভটি ডাউনলোড করে এক্সট্র্যাক্ট করুন। আপনার কাছে থাকা উচিত:

  • yourdomain.crt, আপনার প্রাথমিক SSL সার্টিফিকেট।
  • yourdomain.ca-bundle, ইন্টারমিডিয়েট সার্টিফিকেটগুলি (CA bundle)।
  • yourdomain.key, CSR-এর সাথে আপনার তৈরি করা প্রাইভেট কী।

Lighttpd সুপারিশ করে যে ssl.pemfile দ্বারা রেফারেন্স করা ফাইলটিতে সম্পূর্ণ সার্টিফিকেট চেইন থাকা উচিত: প্রথমে আপনার সার্টিফিকেট, তারপর ইন্টারমিডিয়েট সার্টিফিকেটগুলি। সেই সম্মিলিত চেইন ফাইলটি তৈরি করুন, তারপর এটি এবং প্রাইভেট কী উভয়কেই এমন একটি ডিরেক্টরিতে সরান যা Lighttpd পড়তে পারে (উদাহরণস্বরূপ /etc/lighttpd/ssl/):

cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/

শুধুমাত্র root যাতে এটি পড়তে পারে তা নিশ্চিত করতে প্রাইভেট কী-টি সীমাবদ্ধ করুন:

sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key

ধাপ ২: mod_openssl সক্ষম করুন

ভার্সন 1.4.56 থেকে, Lighttpd-এ TLS সাপোর্ট mod_openssl নামক একটি লোড করা যায় এমন মডিউলে থাকে (mod_mbedtls, mod_wolfssl, mod_gnutls, এবং mod_nss-এর মতো অন্যান্য ব্যাকএন্ডও বিদ্যমান)। SSL সকেট ব্লকের আগে আপনার মূল কনফিগারেশন ফাইলে এটি লোড করুন:

server.modules += ( "mod_openssl" )

নোট: Lighttpd 1.4.55 এবং তার আগের ভার্সনে, TLS একটি মডিউল হিসেবে লোড করার পরিবর্তে কম্পাইল করা ছিল, তাই সেই বিল্ডগুলিতে আপনি এই লাইনটি বাদ দিতে পারেন। lighttpd -v দিয়ে আপনার ভার্সন চেক করুন।

ধাপ ৩: lighttpd.conf এডিট করুন

আপনার পছন্দের এডিটর দিয়ে মূল কনফিগারেশন ফাইলটি খুলুন (পাথটি সাধারণত /etc/lighttpd/lighttpd.conf):

sudo nano /etc/lighttpd/lighttpd.conf

পোর্ট 443-এর জন্য একটি সকেট ব্লক যোগ করুন। বর্তমান Lighttpd-এ (1.4.56+), সার্টিফিকেট চেইন এবং প্রাইভেট কী আলাদা ফাইলে রাখুন: ssl.pemfile-কে সম্পূর্ণ চেইন ফাইলের দিকে এবং ssl.privkey-কে কী-এর দিকে নির্দেশ করুন। এটি এমন ফরম্যাট যা বেশিরভাগ Certificate Authority প্রদান করে, এবং এটিই Lighttpd সুপারিশ করা কনফিগারেশন।

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
    ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"

    # Minimum TLS version (ssl-conf-cmd needs lighttpd 1.4.48+; TLS 1.2 is already the default on 1.4.56+)
    ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
  • ssl.engine এই সকেটের জন্য TLS চালু করে।
  • ssl.pemfile-এ আপনার সার্টিফিকেট থাকে, তারপর ইন্টারমিডিয়েট চেইন।
  • ssl.privkey-এ প্রাইভেট কী থাকে। যখনই কী pemfile-এর মধ্যে না থাকে, তখন ভার্সন 1.4.53 থেকে এটি প্রয়োজনীয়।

সাধারণ HTTP-কে HTTPS-এ রিডাইরেক্ট করতে যাতে ভিজিটররা সবসময় নিরাপদ ভার্সনে পৌঁছান, পোর্ট 80-এর জন্য একটি রিডাইরেক্ট যোগ করুন (এর জন্য mod_redirect প্রয়োজন, যা বেশিরভাগ ডিস্ট্রিবিউশনে ডিফল্টভাবে লোড করা হয়):

$SERVER["socket"] == ":80" {
    url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}

ফাইলটি সেভ করে বন্ধ করুন।

লিগ্যাসি পদ্ধতি: সম্মিলিত PEM এবং ssl.ca-file

পুরনো Lighttpd 1.4.x বিল্ডগুলি (1.4.53-এর আগে) একটি একক সম্মিলিত PEM ব্যবহার করত যাতে সার্টিফিকেট এবং প্রাইভেট কী একসাথে সংযুক্ত থাকত, এবং ইন্টারমিডিয়েট চেইন আলাদাভাবে ssl.ca-file-এর মাধ্যমে সরবরাহ করা হত। আপনি যদি সেই পুরনো সিস্টেমগুলির একটি বজায় রাখেন, তাহলে এভাবে সম্মিলিত ফাইলটি তৈরি করুন:

cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem

তারপর সকেট ব্লকে এটি রেফারেন্স করুন:

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}

বর্তমান Lighttpd-এ, ধাপ ৩ থেকে আলাদা ssl.pemfile এবং ssl.privkey ফর্ম পছন্দ করুন এবং pemfile-এ সম্পূর্ণ চেইন রাখুন। ssl.ca-file নির্দেশনাটির নাম পরিবর্তন করে ভার্সন 1.4.60-এ ssl.verifyclient.ca-file রাখা হয়েছে, কারণ এর প্রকৃত উদ্দেশ্য সার্ভার চেইন পরিবেশন করা নয় বরং ক্লায়েন্ট সার্টিফিকেট যাচাই করা।

ধাপ ৪: কনফিগারেশন টেস্ট করুন

রিস্টার্ট করার আগে সবসময় সিনট্যাক্স চেক করুন, কারণ একটি ত্রুটি সার্ভারটিকে শুরু হতে বাধা দিতে পারে। রান করুন:

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

আপনার একটি বার্তা দেখা উচিত যে সিনট্যাক্স ঠিক আছে। মডিউলগুলি লোড এবং ইনিশিয়ালাইজ করে এমন একটি গভীর চেকের জন্য, sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf ব্যবহার করুন। চালিয়ে যাওয়ার আগে যেকোনো রিপোর্ট করা ত্রুটি ঠিক করুন।

ধাপ ৫: Lighttpd রিস্টার্ট করুন

পরিবর্তনগুলি প্রয়োগ করুন। systemd সহ একটি আধুনিক সিস্টেমে, সার্ভিসটি রিস্টার্ট করুন:

sudo systemctl restart lighttpd

SysV init ব্যবহার করে এমন পুরনো সিস্টেমে, পরিবর্তে init স্ক্রিপ্ট ব্যবহার করুন:

sudo /etc/init.d/lighttpd restart

অভিনন্দন, আপনার SSL সার্টিফিকেট এখন Lighttpd-এ ইনস্টল করা হয়েছে। ফলাফল নিশ্চিত করতে এবং তাৎক্ষণিক স্ট্যাটাস রিপোর্ট পেতে, আমাদের SSL Checker ব্যবহার করুন অথবা আমাদের সম্পূর্ণ SSL tools সেট ব্রাউজ করুন। উন্নত বিকল্পের জন্য, দেখুন সরকারি Lighttpd SSL ডকুমেন্টেশন

প্রায়শই জিজ্ঞাসিত প্রশ্ন

Lighttpd কি একটি সম্মিলিত PEM ফাইল নাকি পৃথক সার্টিফিকেট এবং কী ফাইল ব্যবহার করে?

বর্তমান Lighttpd (1.4.56 এবং তার পরবর্তী) পৃথক ফাইলের সুপারিশ করে: ssl.pemfile দ্বারা নামকরণ করা ফাইলে সার্টিফিকেট এবং এর ইন্টারমিডিয়েট চেইন, এবং ssl.privkey-এ প্রাইভেট কী। পুরনো সম্মিলিত PEM যা সার্টিফিকেট এবং কী-কে একটি ssl.pemfile-এ একত্রিত করেছিল তা এখনও কাজ করে, তবে পৃথক ফর্মটি বেশিরভাগ Certificate Authority-এর ফাইল সরবরাহের পদ্ধতির সাথে মিলে যায় এবং এটি ডকুমেন্টেড সুপারিশ।

ইন্টারমিডিয়েট চেইনের জন্য আমার কি এখনও ssl.ca-file প্রয়োজন?

না। বর্তমান সুপারিশ হল ইন্টারমিডিয়েট সার্টিফিকেটগুলি সরাসরি ssl.pemfile ফাইলে, আপনার সার্টিফিকেটের ঠিক পরে অন্তর্ভুক্ত করা। ssl.ca-file নির্দেশনাটি একটি ঐতিহাসিক পদ্ধতি ছিল যখন pemfile-এ শুধুমাত্র লিফ সার্টিফিকেট থাকত তখন চেইনটি সম্পূর্ণ করার জন্য, এবং ভার্সন 1.4.60-এ এর নাম পরিবর্তন করে ssl.verifyclient.ca-file রাখা হয়েছে কারণ এর প্রকৃত ভূমিকা হল ক্লায়েন্ট-সার্টিফিকেট যাচাইকরণ।

Lighttpd রিস্টার্ট করার আগে আমি কীভাবে কনফিগারেশন চেক করব?

সিনট্যাক্স টেস্ট করতে sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf রান করুন, অথবা মডিউলগুলিও লোড করে এমন একটি গভীর টেস্টের জন্য sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf ব্যবহার করুন। রিস্টার্ট করার আগে এটি রিপোর্ট করা যেকোনো ত্রুটি ঠিক করুন, যাতে একটি টাইপো সার্ভারটিকে শুরু হতে বাধা না দেয়।

Lighttpd-এ আমার ব্রাউজার কেন একটি অসম্পূর্ণ সার্টিফিকেট চেইন দেখাচ্ছে?

এর অর্থ সাধারণত হল আপনার ssl.pemfile-এ ইন্টারমিডিয়েট সার্টিফিকেটগুলি অনুপস্থিত। আপনার সার্টিফিকেট এবং CA bundle-কে একটি ফাইলে একত্রিত করুন, প্রথমে সার্টিফিকেট রেখে, এবং ssl.pemfile-কে এর দিকে নির্দেশ করুন। তারপর কনফিগারেশনটি টেস্ট করে রিস্টার্ট করুন। আপনি আমাদের SSL Checker দিয়ে চেইনটি সম্পূর্ণ কিনা তা নিশ্চিত করতে পারেন।

Lighttpd-এ SSL সার্টিফিকেট ইনস্টল করা হয়েছে কিনা আমি কীভাবে যাচাই করব?

OpenSSL দিয়ে আপনার সাইটের সাথে সংযোগ করুন এবং এটি যে সার্টিফিকেট পরিবেশন করে তা পড়ুন:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
সার্টিফিকেটটি ইনস্টল করা থাকলে, এটি এর ইস্যুকারী এবং বৈধতার তারিখগুলি প্রিন্ট করে। আপনি ব্রাউজারে আপনার সাইট খুলে প্যাডলক চেকও করতে পারেন।

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

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

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

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