bg-tutorials

ম্যাকওএস (macOS) সার্ভারে SSL সার্টিফিকেট ইনস্টল করার পদ্ধতি

এই টিউটোরিয়ালে macOS-এ কীভাবে একটি SSL সার্টিফিকেট ইনস্টল করবেন তা ব্যাখ্যা করা হয়েছে। এতে Keychain Access ব্যবহার করে আপনার সার্টিফিকেট এবং CA বান্ডেল ইম্পোর্ট করা, পুরনো macOS Server (Server.app) ওয়ার্কফ্লো যা এখনও অনেক বিদ্যমান সেটআপে চালু আছে, এবং বর্তমান macOS সংস্করণগুলির জন্য বাস্তবসম্মত পদ্ধতি যেখানে Server.app আর নেই – এই সবকিছু কভার করা হয়েছে।

গুরুত্বপূর্ণ: Apple macOS Server (Server.app) পণ্যটি বন্ধ করে দিয়েছে। 2018 সালে ওয়েব, মেইল এবং বেশিরভাগ হোস্টিং পরিষেবা সরিয়ে ফেলা হয়েছিল, এবং অ্যাপটি নিজেই 2022 সালের এপ্রিল মাসে অবসর নেয়। সর্বশেষ সংস্করণ, 5.12.2, শুধুমাত্র macOS Monterey পর্যন্ত চলে। নিচের ধাপগুলিতে পুরনো Server.app পদ্ধতি এবং বর্তমান পদ্ধতি উভয়ই কভার করা হয়েছে।

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

আপনার SSL সার্টিফিকেট সক্রিয় করতে, আপনি আপনার ডোমেইন এবং প্রতিষ্ঠান সম্পর্কে বিবরণ সার্টিফিকেট অথরিটির (CA) কাছে পাঠান। এই স্ট্যান্ডার্ড ধাপটিকে সার্টিফিকেট সাইনিং রিকোয়েস্ট, বা CSR বলা হয়। আপনার দুটি বিকল্প রয়েছে:

আপনার অর্ডারের সময় CSR জমা দিন। CA আপনার অনুরোধ যাচাই করবে এবং, অনুমোদিত হলে, সার্টিফিকেট সাইন করে ইস্যু করবে। আপনি ইমেইলের মাধ্যমে সার্টিফিকেট ফাইলগুলি পাবেন। এর পরে, নিচে দেওয়া ইনস্টলেশনের সাথে এগিয়ে যান।

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

নিচের ধাপগুলি মূল macOS Server (Server.app) ওয়ার্কফ্লো অনুসরণ করে: Keychain Access দিয়ে CA বান্ডেল এবং সার্টিফিকেট ইম্পোর্ট করা, এরপর Server অ্যাপে পরিষেবাগুলিতে সার্টিফিকেট নির্ধারণ করা। যদি আপনার Mac-এ আর Server অ্যাপ না থাকে, ধাপ 2-এর পরে বর্তমান macOS: Server.app নেই অংশে চলে যান, কারণ Keychain ইম্পোর্ট তখনও প্রযোজ্য।

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

CA আপনাকে পাঠানো ZIP আর্কাইভটি ডাউনলোড করুন এবং এক্সট্র্যাক্ট করুন। আপনার কাছে .crt এক্সটেনশনযুক্ত একটি ফাইল (আপনার প্রাথমিক সার্টিফিকেট) এবং .ca-bundle এক্সটেনশনযুক্ত একটি ফাইল (রুট এবং ইন্টারমিডিয়েট সার্টিফিকেট, যাকে CA বান্ডেল ও বলা হয়) থাকা উচিত। আপনার CSR দিয়ে তৈরি করা প্রাইভেট কী-ও লাগবে।

ধাপ 2: .ca-bundle ফাইলটি Keychain Access-এ যোগ করুন

CA বান্ডেল দিয়ে শুরু করুন। এতে রুট এবং ইন্টারমিডিয়েট সার্টিফিকেট রয়েছে যা ব্রাউজার এবং ক্লায়েন্টরা একটি বিশ্বস্ত রুট পর্যন্ত ট্রাস্ট চেইন তৈরি করতে ব্যবহার করে। এগুলি ছাড়া, দর্শকরা “নিরাপদ নয়” বা অবিশ্বস্ত সার্টিফিকেট সতর্কতা দেখতে পারেন।

  1. .ca-bundle এক্সটেনশনযুক্ত ফাইলটি সনাক্ত করুন।
  2. Keychain Access খুলুন (Spotlight দিয়ে অনুসন্ধান করুন, বা Applications > Utilities-এ খুঁজে নিন)।
  3. .ca-bundle ফাইলটি টেনে Keychain Access উইন্ডোতে ছেড়ে দিন। এটি System কীচেইনে যোগ করুন যাতে এটি সকল ব্যবহারকারী এবং পরিষেবার জন্য প্রযোজ্য হয়।
  4. ইম্পোর্ট নিশ্চিত করতে, সার্চ বারে আপনার CA-এর নাম টাইপ করুন। আপনার ইন্টারমিডিয়েট সার্টিফিকেট এবং রুট সার্টিফিকেট তালিকাভুক্ত দেখা উচিত।

আপনি Terminal থেকেও একই কাজ করতে পারেন, যা হেডলেস বা রিমোট সার্ভারে উপযোগী। এটি সিস্টেম কীচেইনে বান্ডেলটি ইম্পোর্ট করে:

sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain

ধাপ 3: আপনার প্রাথমিক সার্টিফিকেট যোগ করুন (পুরনো Server.app)

এই ধাপে বন্ধ হয়ে যাওয়া Server.app ব্যবহার করা হয়। যদি আপনার Mac-এ আর এটি না থাকে, তাহলে এর পরিবর্তে পরবর্তী অংশ দেখুন।

  1. Server অ্যাপ খুলুন এবং Server > Certificates-এ যান।
  2. মূল পৃষ্ঠায়, মুলতুবি থাকা সার্টিফিকেটে (যা আপনি CSR তৈরি করার সময় তৈরি হয়েছিল) ডাবল-ক্লিক করুন।
  3. যে উইন্ডো খুলবে, সেখানে আপনার .crt ফাইলটি টেনে ছেড়ে দিন, তারপর OK-তে ক্লিক করুন।
  4. এখন একটি বৈধ সার্টিফিকেট ইস্যুকারীর নাম এবং মেয়াদ শেষ হওয়ার তারিখ দেখাবে।

ধাপ 4: আপনার পরিষেবাগুলিতে সার্টিফিকেট নির্ধারণ করুন (পুরনো Server.app)

Server অ্যাপে, Secure services using সেটিংটি খুঁজুন। আপনার SSL সার্টিফিকেট নির্বাচন করতে ড্রপ-ডাউন মেনু ব্যবহার করুন। এটি নির্দিষ্ট পরিষেবা যেমন ফাইল শেয়ারিং বা মেইলের জন্য নির্ধারণ করতে, Custom-এ ক্লিক করুন এবং আপনি যে পরিষেবাগুলি সুরক্ষিত করতে চান তা নির্বাচন করুন। শেষ হলে, OK-তে ক্লিক করুন।

আপনার SSL সার্টিফিকেট এখন ইনস্টল করা হয়েছে। ফলাফল নিশ্চিত করতে এবং সাধারণ সমস্যাগুলি পরীক্ষা করতে, আমাদের SSL Checker ব্যবহার করুন।

বর্তমান macOS: Server.app নেই (Keychain সহ Apache বা nginx ব্যবহার করুন)

যেহেতু Apple Server.app বন্ধ করে দিয়েছে, বর্তমান macOS সংস্করণগুলিতে কোনো Server > Certificates স্ক্রিন নেই এবং কোনো প্রতি-পরিষেবা সার্টিফিকেট নির্ধারণ নেই। সিস্টেম ট্রাস্টের জন্য Keychain Access-এ সার্টিফিকেট ইম্পোর্ট (ধাপ 2) এখনও প্রযোজ্য, তবে আপনি সরাসরি একটি ওয়েব সার্ভার কনফিগার করে HTTPS পরিবেশন করেন। macOS-এ Apache (httpd) বিল্ট-ইন থাকে, এবং nginx Homebrew-এর মাধ্যমে পাওয়া যায়। আপনার সার্টিফিকেট এবং কী এমন জায়গায় রাখুন যেখানে সার্ভার সেগুলি পড়তে পারে, উদাহরণস্বরূপ /etc/ssl/-এর অধীনে, এবং প্রাইভেট কী কেবল root-এর জন্য পঠনযোগ্য রাখুন।

অপশন A: বিল্ট-ইন Apache (httpd)

/etc/apache2/httpd.conf সম্পাদনা করুন এবং এই লাইনগুলি থেকে শুরুর # সরিয়ে ফেলুন যাতে SSL মডিউল এবং SSL কনফিগ লোড হয়:

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

প্রথমে, একটি ফুল-চেইন ফাইল তৈরি করুন (আপনার সার্টিফিকেট এবং তারপর CA বান্ডেল), যা Apache 2.4.8 এবং তার পরবর্তী সংস্করণে SSLCertificateFile প্রত্যাশা করে:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

তারপর /etc/apache2/extra/httpd-ssl.conf সম্পাদনা করুন এবং নিশ্চিত করুন এটি পোর্ট 443-এ শুনছে। এই ফাইলটিতে ইতিমধ্যেই একটি স্ব-স্বাক্ষরিত সার্টিফিকেট সহ একটি ডিফল্ট <VirtualHost _default_:443> ব্লক রয়েছে, তাই হয় সেই ব্লকটি সম্পাদনা করুন বা নিচের ভার্চুয়াল হোস্টটি যোগ করুন এবং ডিফল্টটি মন্তব্য করে দিন, যাতে পোর্ট 443-এ দুটি হোস্ট না থাকে:

<VirtualHost *:443>
    ServerName www.yourdomain.com
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off
</VirtualHost>

উপরের পাথগুলি ধরে নেয় যে প্রাইভেট কীটি /etc/ssl/private/-তে রয়েছে, যা ডিফল্টভাবে macOS-এ নাও থাকতে পারে। প্রথমে এটি তৈরি করুন এবং কী কেবল root-এর জন্য পঠনযোগ্য রাখুন:

sudo mkdir -p /etc/ssl/private
sudo chmod 600 /etc/ssl/private/yourdomain.key

রিস্টার্ট করার আগে কনফিগারেশন পরীক্ষা করুন, তারপর Apache রিস্টার্ট করুন:

sudo apachectl configtest
sudo apachectl restart

পরীক্ষা থেকে আপনার Syntax OK দেখা উচিত। যদি আপনি একটি ত্রুটি পান, রিস্টার্ট করার আগে এটি ঠিক করুন যাতে সার্ভার চালু হতে ব্যর্থ না হয়।

অপশন B: nginx

যদি আপনি nginx চালান, আপনার সার্ভার ব্লকে ফুল-চেইন ফাইল এবং কী উল্লেখ করুন, তারপর রিলোড করুন:

server {
    listen 443 ssl;
    server_name www.yourdomain.com;

    ssl_certificate     /etc/ssl/yourdomain_fullchain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}
sudo nginx -t
sudo nginx -s reload

Mac-এর একটি বহরে কনফিগারেশন ব্যবস্থাপনার জন্য (পুরনো Profile Manager যে ভূমিকা পালন করত), পরিবর্তে একটি বর্তমান MDM সমাধান ব্যবহার করুন। যেকোনো মেশিন থেকে ইনস্টল করা সার্টিফিকেট যাচাই করতে, আমাদের SSL Checker ব্যবহার করুন।

সচরাচর জিজ্ঞাসিত প্রশ্নাবলী

macOS Server কি এখনও উপলব্ধ?

না। Apple 2018 সালে macOS Server থেকে বেশিরভাগ হোস্টিং পরিষেবা সরিয়ে ফেলেছে এবং 2022 সালের এপ্রিল মাসে অ্যাপটি নিজেই বন্ধ করে দিয়েছে। চূড়ান্ত রিলিজ, সংস্করণ 5.12.2, শুধুমাত্র macOS Monterey পর্যন্ত চলে এবং নতুন macOS সংস্করণে সমর্থিত নয়। বর্তমান macOS-এ আপনি Server অ্যাপ ব্যবহার করার পরিবর্তে সার্টিফিকেটগুলি Keychain Access-এ ইম্পোর্ট করেন এবং সরাসরি Apache বা nginx কনফিগার করেন।

Server অ্যাপ ছাড়া কীভাবে macOS-এ একটি SSL সার্টিফিকেট ইনস্টল করব?

CA বান্ডেল এবং আপনার সার্টিফিকেট Keychain Access-এ ইম্পোর্ট করুন যাতে সিস্টেম চেইনটি বিশ্বাস করে, তারপর আপনার ওয়েব সার্ভারকে সার্টিফিকেট এবং প্রাইভেট কীর দিকে নির্দেশ করুন। macOS-এ Apache অন্তর্ভুক্ত থাকে (/etc/apache2/-এ কনফিগার করা), এবং আপনি Homebrew-এর মাধ্যমে nginx ইনস্টল করতে পারেন। Apache-এ SSLCertificateFile এবং SSLCertificateKeyFile, অথবা nginx-এ ssl_certificate এবং ssl_certificate_key সেট করুন, তারপর কনফিগ পরীক্ষা করুন এবং সার্ভার রিস্টার্ট করুন।

macOS কোথায় SSL সার্টিফিকেট সংরক্ষণ করে?

বিশ্বস্ত সার্টিফিকেটগুলি Keychain Access দ্বারা পরিচালিত কীচেইনে থাকে। সিস্টেম-ব্যাপী সার্টিফিকেটগুলি System কীচেইনে যায়, যা /Library/Keychains/System.keychain-এ সংরক্ষিত থাকে। আপনার ওয়েব সার্ভার যে সার্টিফিকেট এবং প্রাইভেট কী ফাইলগুলি পড়ে সেগুলি অন্য কোথাও রাখা যেতে পারে, উদাহরণস্বরূপ /etc/ssl/-এর অধীনে, যতক্ষণ পর্যন্ত সার্ভার কনফিগারেশন সেগুলির দিকে নির্দেশ করে এবং কী কেবল root-এর জন্য পঠনযোগ্য থাকে।

macOS-এ কি আমার CA বান্ডেল ইনস্টল করতে হবে?

হ্যাঁ। CA বান্ডেলে ইন্টারমিডিয়েট এবং রুট সার্টিফিকেট থাকে যা ব্রাউজার এবং ক্লায়েন্টদের একটি সম্পূর্ণ ট্রাস্ট চেইন তৈরি করতে দেয়। আপনি যদি এটি বাদ দেন, কিছু দর্শক একটি অবিশ্বস্ত বা অসম্পূর্ণ সার্টিফিকেট চেইন সতর্কতা দেখতে পাবেন। .ca-bundle ফাইলটি Keychain Access-এ ইম্পোর্ট করুন, অথবা Apache বা nginx-এর জন্য এটি আপনার সার্টিফিকেটের পরে একটি ফুল-চেইন ফাইলে একত্রিত করুন।

সার্টিফিকেটটি সঠিকভাবে ইনস্টল হয়েছে কিনা তা কীভাবে যাচাই করব?

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

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

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

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

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