یہ ماڈیول کیا کرتا ہے #
TLS سرٹیفکیٹ ہی وہ چیز ہے جو http:// کو https:// میں بدلتی ہے: یہ آپ کے وزیٹرز اور سرور کے درمیان کنکشن کو خفیہ کرتی ہے، اور براؤزر کو «غیر محفوظ» وارننگ کے بجائے تالا دکھانے پر مجبور کرتی ہے۔
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
دیکھیں کون سے موجود ہیں اور کب ختم ہوتے ہیں
ایک نظر میں اپنے سرٹیفکیٹس کی حالت جانچیں۔
عمومی حالت اور تجدید کے ٹائمر کا فوری خلاصہ:
$ sudo imaxe tls statusڈومین بہ ڈومین تفصیل چاہتے ہیں، باقی دنوں اور fullchain راستے کے ساتھ؟ list استعمال کریں:
$ sudo imaxe tls list3
تجدید پر مجبور کریں
یہ عموماً خودکار ہوتی ہے، مگر اگر ضرورت ہو تو آپ اسے پہلے کر سکتے ہیں۔
ختم ہونے کے قریب تمام سرٹیفکیٹس کی تجدید کریں (ٹائمر بالکل یہی کرتا ہے):
$ 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/ میں لکھتی ہیں اور سسٹم سروسز کو دوبارہ لوڈ کرتی ہیں۔ scripting کے لیے موزوں مشین کے پڑھنے کے قابل آؤٹ پٹ کے لیے list یا status میں --json شامل کریں۔
ذیلی کمانڈز #
| ذیلی کمانڈ | یہ کیا کرتا ہے | متعلقہ فلیگز |
|---|---|---|
| issue | ایک یا زیادہ ڈومینز کے لیے سرٹیفکیٹ جاری کرتا ہے، ACME چیلنج حل کرتے ہوئے۔ | --email, --webroot, --standalone, --staging |
| renew | ختم ہونے کے قریب سرٹیفکیٹس کی تجدید کرتا ہے اور ویب سرور دوبارہ لوڈ کرتا ہے۔ ٹائمر کے لیے موزوں۔ | --dry-run, --force |
| list | زیرِ انتظام سرٹیفکیٹس کی فہرست بناتا ہے، ختم ہونے تک دنوں اور fullchain راستے کے ساتھ۔ | --json |
| status | خلاصہ: سرٹیفکیٹس کی تعداد، وہ جو ختم ہونے کے قریب ہیں، اور تجدید کے ٹائمر کی حالت۔ | --json |
| revoke | اتھارٹی (ACME) کے پاس ڈومین کے لحاظ سے سرٹیفکیٹ منسوخ کرتا ہے۔ | --reason |
| delete | سرٹیفکیٹ اور اس کی کیز کو ڈسک سے حذف کرتا ہے۔ ACME پر منسوخ نہیں کرتا۔ | — |
آرگیومنٹس اور فلیگز #
| فلیگ | قسم | طے شدہ | تفصیل |
|---|---|---|---|
| <dominio> لازمی | string… | — | سرٹیفکیٹ کے لیے ایک یا زیادہ ڈومینز۔ issue میں، پہلا بنیادی (CN) ہوتا ہے؛ باقی SANs ہوتے ہیں۔ 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، خودکار تجدید اور reload hook۔ |
| /etc/letsencrypt/live/<dominio>/ | سرٹیفکیٹ (fullchain.pem) اور نجی کی (privkey.pem) جسے certbot منظم کرتا ہے۔ |
| /var/log/imaxe/tls.log | ہر اجرا، تجدید اور منسوخی کا منظم لاگ۔ |
| imaxe-tls.timer | systemd ٹائمر جو وقتاً فوقتاً 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جدید مثالیں #
ایک ہی سرٹیفکیٹ میں کئی ڈومینز
پہلا ڈومین بنیادی ہوتا ہے؛ اگلے SANs کے طور پر شامل کیے جاتے ہیں، سب ایک ہی سرٹیفکیٹ میں:
$ 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» کے آؤٹ پٹ کے ساتھ ہمیں لکھیں اور ہم فوراً جواب دیں گے۔