লঞ্চার পণ্য Bitnami ডকুমেন্টেশনimaxe CLI ব্লগ যোগাযোগ
imaxe tls সার্টিফিকেট v1.0.0

HTTPS সার্টিফিকেট, ঝামেলা ছাড়াই

আপনার সার্ভারের জন্য বিনামূল্যের Let's Encrypt সার্টিফিকেট ইস্যু ও নবায়ন করুন এবং সেবা বিঘ্নিত না করেই সেগুলো রিলোড করুন। একটি কমান্ড এটি চালু করে; এরপর থেকে এটি নিজেই নবায়ন হয়।

$ imaxe tls issue app.ejemplo.com --email [email protected]
সংস্করণ
v1.0.0
সাবকমান্ড
6
কনফিগ
/etc/imaxe/tls.yml
root প্রয়োজন
হ্যাঁ
নবায়ন
অটো · timer

এই মডিউল কী করে #

একটি TLS সার্টিফিকেটই http://-কে https://-তে রূপান্তরিত করে: এটি আপনার দর্শনার্থী ও সার্ভারের মধ্যে সংযোগ এনক্রিপ্ট করে এবং ব্রাউজারকে "not secure" সতর্কতার বদলে তালা দেখায়।

tls মডিউলটি certbot ব্যবহার করে সেই সার্টিফিকেটের সম্পূর্ণ জীবনচক্র সামলায়: এটি Let's Encrypt (একটি বিনামূল্যের, সুপরিচিত কর্তৃপক্ষ) থেকে এটি অনুরোধ করে, ACME চ্যালেঞ্জের মাধ্যমে ডোমেইনটি আপনার তা প্রমাণ করে, আপনার ওয়েব সার্ভার যেখানে প্রত্যাশা করে সেখানে সার্টিফিকেটটি ইনস্টল করে এবং মেয়াদ শেষ হওয়ার আগে স্বয়ংক্রিয়ভাবে এটি নবায়ন করে — আপনার মনে রাখার প্রয়োজন ছাড়াই।

শুরু করার আগে

আপনার ডোমেইন (যেমন app.ejemplo.com) DNS-এর মাধ্যমে এই সার্ভারের IP-তে নির্দেশ করতে হবে, এবং HTTP-01 চ্যালেঞ্জের জন্য 80 পোর্ট পৌঁছানো যায় এমন হতে হবে। নয়তো, যাচাইয়ের ধাপে ইস্যু ব্যর্থ হবে।

দ্রুত নির্দেশিকাধাপে ধাপে কাজ

সাধারণ কাজ #

আপনি কী করতে চান তা বেছে নিন। প্রতিটি রেসিপিতে কমান্ডটি আগে থেকেই লেখা আছে — শুধু নিজের ডোমেইন ও ইমেল বসান এবং কপি করুন চাপুন।

1

আমার প্রথম সার্টিফিকেট ইস্যু করুন

এক মিনিটে আপনার ডোমেইনের জন্য HTTPS তালা পান।

ubuntu ব্যবহারকারী হিসেবে SSH-এর মাধ্যমে আপনার সার্ভারে সংযোগ করুন।

নিজের ডোমেইন ও ইমেল বসিয়ে কমান্ডটি চালান (ইমেলটি শুধু কিছুর মেয়াদ শেষ হতে চললে আপনাকে সতর্ক করতে ব্যবহৃত হয়):

terminal
$ sudo imaxe tls issue app.ejemplo.com --email [email protected]

কয়েক সেকেন্ড অপেক্ষা করুন। আপনি চ্যালেঞ্জের অগ্রগতি এবং শেষে মেয়াদ শেষের তারিখ দেখতে পাবেন।

আপনার সাইট এখন তালাসহ https://-তে লোড হয়। স্বয়ংক্রিয় নবায়ন সক্রিয় — আপনাকে আর কিছুই করতে হবে না।
2

কোনগুলো আছে ও কখন মেয়াদ শেষ হয় দেখুন

এক নজরে আপনার সার্টিফিকেটের অবস্থা যাচাই করুন।

সামগ্রিক অবস্থা ও নবায়ন timer-এর একটি দ্রুত সারসংক্ষেপ:

terminal
$ sudo imaxe tls status

ডোমেইন ধরে ধরে বিস্তারিত চান, অবশিষ্ট দিন ও fullchain পাথসহ? list ব্যবহার করুন:

terminal
$ sudo imaxe tls list
কোনো ডোমেইনের অল্প কয়েক দিন বাকি দেখলে, নবায়ন বাধ্য করুন রেসিপিতে যান।
3

নবায়ন বাধ্য করুন

সাধারণত এটি স্বয়ংক্রিয়, তবে প্রয়োজনে আপনি এটি এগিয়ে আনতে পারেন।

মেয়াদ শেষ হতে চলা সব সার্টিফিকেট নবায়ন করুন (timer ঠিক এটাই করে):

terminal
$ sudo imaxe tls renew

ডিস্ক স্পর্শ না করে আগে এটি মহড়া দিতে চান, নাকি দিন বাকি থাকলেও নবায়ন করতে চান? --dry-run বা --force যোগ করুন:

terminal
$ sudo imaxe tls renew --dry-run
$ sudo imaxe tls renew --force
ওয়েব সার্ভার নতুন সার্টিফিকেট নিয়ে নিজেই রিলোড হয়। আপনার দর্শনার্থীরা কোনো বিঘ্ন টের পায় না।
4

প্রত্যাহার করুন

কর্তৃপক্ষের কাছে একটি সার্টিফিকেট অকার্যকর করুন (যেমন কী ফাঁস হলে)।

জানা থাকলে কারণসহ Let's Encrypt-এ একটি ডোমেইনের সার্টিফিকেট প্রত্যাহার করুন:

terminal
$ sudo imaxe tls revoke app.ejemplo.com --reason keycompromise
সার্টিফিকেটটি তাৎক্ষণিকভাবে আর বৈধ থাকে না। ডোমেইনটি এখনো ব্যবহারে থাকলে, issue দিয়ে একটি নতুন ইস্যু করুন।
5

ডিস্ক থেকে একটি সার্টিফিকেট মুছে ফেলুন

আপনি আর ব্যবহার করেন না এমন একটি ডোমেইন পরিচালনা বন্ধ করুন।

ডিস্ক থেকে সার্টিফিকেট ও তার কী সরান। খেয়াল রাখুন: এটি কর্তৃপক্ষের কাছে সার্টিফিকেট প্রত্যাহার করে না — তার জন্য আগে revoke ব্যবহার করুন।

terminal
$ sudo imaxe tls delete tienda.ejemplo.com
ডোমেইনটি imaxe tls list থেকে অদৃশ্য হয় এবং এর স্বয়ংক্রিয় নবায়ন বন্ধ হয়।
কিছু কাজ করেনি?

সবচেয়ে সাধারণ সমস্যা হলো DNS এখনো প্রচারিত হয়নি বা 80 পোর্ট বন্ধ। কয়েক মিনিট অপেক্ষা করে আবার চেষ্টা করুন। যদি টিকে থাকে, আগে --staging দিয়ে টেস্ট মোড চেষ্টা করুন (রেফারেন্স দেখুন) যাতে আপনার চেষ্টার কোটা নষ্ট না হয়।

CLI রেফারেন্সকমান্ড, ফ্ল্যাগ ও ফাইল

সারসংক্ষেপ #

uso
imaxe tls <subcomando> [<dominio>...] [--email CORREO] [flags]

সার্টিফিকেট স্পর্শ করে এমন সাবকমান্ডের জন্য root প্রিভিলেজ প্রয়োজন (sudo ব্যবহার করুন) কারণ এগুলো /etc/imaxe/-তে লেখে ও সিস্টেম সার্ভিস রিলোড করে। স্ক্রিপ্টিং-এর উপযোগী মেশিন-পাঠযোগ্য আউটপুট পেতে list বা status-এ --json যোগ করুন।

সাবকমান্ড #

সাবকমান্ডকী করেপ্রাসঙ্গিক ফ্ল্যাগ
issueএক বা একাধিক ডোমেইনের জন্য একটি সার্টিফিকেট ইস্যু করে, ACME চ্যালেঞ্জ সমাধান করে।--email, --webroot, --standalone, --staging
renewমেয়াদ শেষ হতে চলা সার্টিফিকেট নবায়ন করে ও ওয়েব সার্ভার রিলোড করে। timer-এর উপযোগী।--dry-run, --force
listমেয়াদ শেষের দিন ও fullchain পাথসহ পরিচালিত সার্টিফিকেটের তালিকা দেয়।--json
statusসারসংক্ষেপ: সার্টিফিকেটের সংখ্যা, মেয়াদ শেষ হতে চলা সেগুলো এবং নবায়ন timer-এর অবস্থা।--json
revokeকর্তৃপক্ষের কাছে (ACME) ডোমেইন অনুসারে একটি সার্টিফিকেট প্রত্যাহার করে।--reason
deleteডিস্ক থেকে সার্টিফিকেট ও তার কী মুছে ফেলে। ACME-তে প্রত্যাহার করে না।

আর্গুমেন্ট ও ফ্ল্যাগ #

ফ্ল্যাগধরনডিফল্টবিবরণ
<dominio> আবশ্যকstring…সার্টিফিকেটের জন্য এক বা একাধিক ডোমেইন। issue-এ, প্রথমটি প্রধান (CN); বাকিগুলো SAN। revoke/delete-এ, যে ডোমেইনে কাজ করতে হবে।
--emailstringtls.ymlACME অ্যাকাউন্টের যোগাযোগ ইমেল। প্রথম issue-এ আবশ্যক; পরে tls.yml-এরটি পুনরায় ব্যবহৃত হয়।
--webrootpath/var/www/htmlHTTP-01 চ্যালেঞ্জের রুট ডিরেক্টরি। ডিফল্ট পদ্ধতি।
--standaloneboolfalsewebroot-এর বদলে certbot-এর অন্তর্নির্মিত সার্ভার ব্যবহার করে। 80 পোর্ট মুক্ত থাকা প্রয়োজন।
--stagingboolfalseLet's Encrypt-এর টেস্ট পরিবেশ ব্যবহার করে (রেট লিমিটে গণনা হয় না)। সার্টিফিকেটটি বিশ্বস্ত হবে না।
--dry-runboolfalserenew-এ, ডিস্ক স্পর্শ না করে নবায়ন সিমুলেট করে।
--forceboolfalserenew-এ, মেয়াদ শেষের কাছাকাছি না হলেও নবায়ন করে।
--reasonenumunspecifiedrevoke-এ: unspecified, keycompromise, superseded, cessationofoperation
--jsonboolfalselist/status-এ, ফলাফল stdout-এ JSON হিসেবে দেয়।

ফাইল ও পাথ #

পাথবিষয়বস্তু
/etc/imaxe/tls.ymlমডিউলের কনফিগারেশন: ডিফল্ট ইমেল, পদ্ধতি (webroot/standalone), webroot, staging, স্বয়ংক্রিয় নবায়ন ও রিলোড হুক।
/etc/letsencrypt/live/<dominio>/certbot দ্বারা পরিচালিত সার্টিফিকেট (fullchain.pem) ও প্রাইভেট কী (privkey.pem)।
/var/log/imaxe/tls.logপ্রতিটি ইস্যু, নবায়ন ও প্রত্যাহারের কাঠামোবদ্ধ লগ।
imaxe-tls.timersystemd timer যা পর্যায়ক্রমে renew ট্রিগার করে।

tls.yml-এর উদাহরণ:

/etc/imaxe/tls.yml
email: [email protected]
default_method: webroot
webroot: /var/www/html
staging: false
auto_renew: true
reload_hook: systemctl reload nginx

প্রস্থান কোড ও লগ #

প্রতিটি চালানো একটি কোড ফেরত দেয় যা আপনি echo $? দিয়ে যাচাই করতে পারেন — স্ক্রিপ্টে চেইন করার জন্য উপযোগী:

0OKকোনো মুলতুবি পরিবর্তন ছাড়াই কাজ সম্পন্ন।
1ERRশ্রেণিবদ্ধ নয় এমন সাধারণ ত্রুটি। লগ পর্যালোচনা করুন।
2USAGEঅবৈধ বা অনুপস্থিত আর্গুমেন্ট।
3CHALLENGEACME যাচাই ব্যর্থ হয়েছে (DNS/HTTP)।
4RATELIMITLet's Encrypt-এর সীমা পৌঁছে গেছে।
5RELOADইস্যু ঠিক আছে কিন্তু ওয়েব সার্ভার রিলোড ব্যর্থ হয়েছে।

ডিবাগ করার সময় লগটি সরাসরি অনুসরণ করুন:

terminal
$ sudo journalctl -u imaxe-tls -f
$ sudo tail -f /var/log/imaxe/tls.log

উন্নত উদাহরণ #

একটি সার্টিফিকেটে একাধিক ডোমেইন

প্রথম ডোমেইনটি প্রধান; পরের ডোমেইনগুলো SAN হিসেবে যুক্ত হয়, সবই একটি সার্টিফিকেটে:

terminal
$ sudo imaxe tls issue ejemplo.com www.ejemplo.com \
    --email [email protected]

প্রোডাকশনের আগে একটি নিরাপদ পরীক্ষা

টেস্ট পরিবেশের সাপেক্ষে সম্পূর্ণ চেইন যাচাই করুন যাতে আপনার আসল কোটা নষ্ট না হয়। --standalone দিয়ে আপনার একটি কনফিগার করা ওয়েব সার্ভারের প্রয়োজন নেই:

terminal
$ sudo imaxe tls issue app.ejemplo.com \
    --email [email protected] --standalone --staging \
  || echo "falló con código $?"

সমস্যা সমাধান #

উপসর্গসম্ভাব্য কারণসমাধান
CHALLENGE (কোড 3) ফেরত দেয়ডোমেইনটি এই হোস্টে রিজলভ করে না বা 80 পোর্ট বন্ধ।A/AAAA রেকর্ড যাচাই করুন এবং সিকিউরিটি গ্রুপে 80 পোর্ট খুলুন; আবার চেষ্টা করুন।
RATELIMIT (কোড 4) ফেরত দেয়এক সপ্তাহে একই ডোমেইনের অনেকবার ইস্যু।পরীক্ষার জন্য --staging ব্যবহার করুন; উইন্ডো মুক্ত হওয়ার জন্য অপেক্ষা করুন।
HTTPS লোড হয় কিন্তু একটি সতর্কতাসহ--staging দিয়ে ইস্যু করা: সার্টিফিকেটটি বিশ্বস্ত নয়।একটি বৈধ সার্টিফিকেট পেতে --staging ছাড়া পুনরায় ইস্যু করুন।
RELOAD (কোড 5) ফেরত দেয়reload_hook একটি অস্তিত্বহীন সার্ভিসে নির্দেশ করে।tls.yml-এ reload_hook ঠিক করুন এবং আবার renew চালান।

TLS মডিউল নিয়ে আটকে গেছেন?

«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।

সাপোর্টে যোগাযোগ করুন