এই মডিউল কী করে #
একটি TLS সার্টিফিকেটই http://-কে https://-তে রূপান্তরিত করে: এটি আপনার দর্শনার্থী ও সার্ভারের মধ্যে সংযোগ এনক্রিপ্ট করে এবং ব্রাউজারকে "not secure" সতর্কতার বদলে তালা দেখায়।
tls মডিউলটি certbot ব্যবহার করে সেই সার্টিফিকেটের সম্পূর্ণ জীবনচক্র সামলায়: এটি Let's Encrypt (একটি বিনামূল্যের, সুপরিচিত কর্তৃপক্ষ) থেকে এটি অনুরোধ করে, ACME চ্যালেঞ্জের মাধ্যমে ডোমেইনটি আপনার তা প্রমাণ করে, আপনার ওয়েব সার্ভার যেখানে প্রত্যাশা করে সেখানে সার্টিফিকেটটি ইনস্টল করে এবং মেয়াদ শেষ হওয়ার আগে স্বয়ংক্রিয়ভাবে এটি নবায়ন করে — আপনার মনে রাখার প্রয়োজন ছাড়াই।
আপনার ডোমেইন (যেমন app.ejemplo.com) DNS-এর মাধ্যমে এই সার্ভারের IP-তে নির্দেশ করতে হবে, এবং HTTP-01 চ্যালেঞ্জের জন্য 80 পোর্ট পৌঁছানো যায় এমন হতে হবে। নয়তো, যাচাইয়ের ধাপে ইস্যু ব্যর্থ হবে।
সাধারণ কাজ #
আপনি কী করতে চান তা বেছে নিন। প্রতিটি রেসিপিতে কমান্ডটি আগে থেকেই লেখা আছে — শুধু নিজের ডোমেইন ও ইমেল বসান এবং কপি করুন চাপুন।
1
আমার প্রথম সার্টিফিকেট ইস্যু করুন
এক মিনিটে আপনার ডোমেইনের জন্য HTTPS তালা পান।
ubuntu ব্যবহারকারী হিসেবে SSH-এর মাধ্যমে আপনার সার্ভারে সংযোগ করুন।
নিজের ডোমেইন ও ইমেল বসিয়ে কমান্ডটি চালান (ইমেলটি শুধু কিছুর মেয়াদ শেষ হতে চললে আপনাকে সতর্ক করতে ব্যবহৃত হয়):
$ sudo imaxe tls issue app.ejemplo.com --email [email protected]কয়েক সেকেন্ড অপেক্ষা করুন। আপনি চ্যালেঞ্জের অগ্রগতি এবং শেষে মেয়াদ শেষের তারিখ দেখতে পাবেন।
https://-তে লোড হয়। স্বয়ংক্রিয় নবায়ন সক্রিয় — আপনাকে আর কিছুই করতে হবে না।2
কোনগুলো আছে ও কখন মেয়াদ শেষ হয় দেখুন
এক নজরে আপনার সার্টিফিকেটের অবস্থা যাচাই করুন।
সামগ্রিক অবস্থা ও নবায়ন timer-এর একটি দ্রুত সারসংক্ষেপ:
$ sudo imaxe tls statusডোমেইন ধরে ধরে বিস্তারিত চান, অবশিষ্ট দিন ও fullchain পাথসহ? list ব্যবহার করুন:
$ sudo imaxe tls list3
নবায়ন বাধ্য করুন
সাধারণত এটি স্বয়ংক্রিয়, তবে প্রয়োজনে আপনি এটি এগিয়ে আনতে পারেন।
মেয়াদ শেষ হতে চলা সব সার্টিফিকেট নবায়ন করুন (timer ঠিক এটাই করে):
$ sudo imaxe tls renewডিস্ক স্পর্শ না করে আগে এটি মহড়া দিতে চান, নাকি দিন বাকি থাকলেও নবায়ন করতে চান? --dry-run বা --force যোগ করুন:
$ sudo imaxe tls renew --dry-run
$ sudo imaxe tls renew --force4
প্রত্যাহার করুন
কর্তৃপক্ষের কাছে একটি সার্টিফিকেট অকার্যকর করুন (যেমন কী ফাঁস হলে)।
জানা থাকলে কারণসহ Let's Encrypt-এ একটি ডোমেইনের সার্টিফিকেট প্রত্যাহার করুন:
$ sudo imaxe tls revoke app.ejemplo.com --reason keycompromiseissue দিয়ে একটি নতুন ইস্যু করুন।5
ডিস্ক থেকে একটি সার্টিফিকেট মুছে ফেলুন
আপনি আর ব্যবহার করেন না এমন একটি ডোমেইন পরিচালনা বন্ধ করুন।
ডিস্ক থেকে সার্টিফিকেট ও তার কী সরান। খেয়াল রাখুন: এটি কর্তৃপক্ষের কাছে সার্টিফিকেট প্রত্যাহার করে না — তার জন্য আগে revoke ব্যবহার করুন।
$ sudo imaxe tls delete tienda.ejemplo.comimaxe tls list থেকে অদৃশ্য হয় এবং এর স্বয়ংক্রিয় নবায়ন বন্ধ হয়।সবচেয়ে সাধারণ সমস্যা হলো DNS এখনো প্রচারিত হয়নি বা 80 পোর্ট বন্ধ। কয়েক মিনিট অপেক্ষা করে আবার চেষ্টা করুন। যদি টিকে থাকে, আগে --staging দিয়ে টেস্ট মোড চেষ্টা করুন (রেফারেন্স দেখুন) যাতে আপনার চেষ্টার কোটা নষ্ট না হয়।
সারসংক্ষেপ #
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-এ, যে ডোমেইনে কাজ করতে হবে। |
| string | tls.yml | ACME অ্যাকাউন্টের যোগাযোগ ইমেল। প্রথম issue-এ আবশ্যক; পরে tls.yml-এরটি পুনরায় ব্যবহৃত হয়। | |
| --webroot | path | /var/www/html | HTTP-01 চ্যালেঞ্জের রুট ডিরেক্টরি। ডিফল্ট পদ্ধতি। |
| --standalone | bool | false | webroot-এর বদলে certbot-এর অন্তর্নির্মিত সার্ভার ব্যবহার করে। 80 পোর্ট মুক্ত থাকা প্রয়োজন। |
| --staging | bool | false | Let's Encrypt-এর টেস্ট পরিবেশ ব্যবহার করে (রেট লিমিটে গণনা হয় না)। সার্টিফিকেটটি বিশ্বস্ত হবে না। |
| --dry-run | bool | false | renew-এ, ডিস্ক স্পর্শ না করে নবায়ন সিমুলেট করে। |
| --force | bool | false | renew-এ, মেয়াদ শেষের কাছাকাছি না হলেও নবায়ন করে। |
| --reason | enum | unspecified | revoke-এ: unspecified, keycompromise, superseded, cessationofoperation। |
| --json | bool | false | list/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.timer | systemd timer যা পর্যায়ক্রমে renew ট্রিগার করে। |
tls.yml-এর উদাহরণ:
email: [email protected]
default_method: webroot
webroot: /var/www/html
staging: false
auto_renew: true
reload_hook: systemctl reload nginxপ্রস্থান কোড ও লগ #
প্রতিটি চালানো একটি কোড ফেরত দেয় যা আপনি echo $? দিয়ে যাচাই করতে পারেন — স্ক্রিপ্টে চেইন করার জন্য উপযোগী:
ডিবাগ করার সময় লগটি সরাসরি অনুসরণ করুন:
$ sudo journalctl -u imaxe-tls -f
$ sudo tail -f /var/log/imaxe/tls.logউন্নত উদাহরণ #
একটি সার্টিফিকেটে একাধিক ডোমেইন
প্রথম ডোমেইনটি প্রধান; পরের ডোমেইনগুলো SAN হিসেবে যুক্ত হয়, সবই একটি সার্টিফিকেটে:
$ sudo imaxe tls issue ejemplo.com www.ejemplo.com \
--email [email protected]প্রোডাকশনের আগে একটি নিরাপদ পরীক্ষা
টেস্ট পরিবেশের সাপেক্ষে সম্পূর্ণ চেইন যাচাই করুন যাতে আপনার আসল কোটা নষ্ট না হয়। --standalone দিয়ে আপনার একটি কনফিগার করা ওয়েব সার্ভারের প্রয়োজন নেই:
$ 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» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।