Skip to content

Latest commit

 

History

History
157 lines (88 loc) · 10.2 KB

create-tsl-certificate.md

File metadata and controls

157 lines (88 loc) · 10.2 KB

ساخت TLS Certificate

برای اینکه کاربران ما نسبت به ایمنی داده‌های‌شان در برابر دیواره GFW‌ مطمئن باشند، ما می‌بایست داده‌های شان را با پروتکل‌های TLS و یا XTLS رمزنگاری کنیم. برای این رمزنگاری ما نیاز خواهیم داشت که بر روی سرور لینوکسی خود کلیدهای رمزنگاری یا certificate داشته باشیم. در این مستند شرح خواهیم داد که این کلیدها چگونه ساخته خواهند شد.

برای ساخت کلید رمزنگاری دو روش Self-Signed و Let's Encrypt را شرح خواهیم داد. فکر می‌کنیم برای کاربران عادی، استفاده از روش Self-Signed راحت‌‌تر می‌باشد. استفاده از روش Let's Encrypt‌ نیاز به خرید domain دارد که هزینه‌ای حدود سالی ۱۰ دلار خواهد داشت اما در عوض امنیت بیشتری را برای کاربران‌تون فراهم خواهد کرد.

ساخت کلید رمزنگاری به روش Self-Signed (برای کاربران مبتدی)

این روش برای کسانی مناسب هست که برای اولین‌بار می‌خواهند فیلترشکن را راه‌اندازی کنند و یا خیلی از کامپیوتر سررشته ندارند. شما این مرحله رو فقط یکبار لازم هست که انجام بدهید. شروع می‌کنیم.

گام اول

با دستور زیر، سطح اختیارات را بالا می‌بریم.

sudo -i

گام دوم

با دستور زیر، بانک اطلاعاتی اپلیکیشن‌های لینوکس را به روز می‌کنیم.

apt update && apt upgrade -y

گام سوم

با دستور زیر، openssl را نصب می‌کنیم.

sudo apt-get install openssl

گام چهارم

با دستور زیر، کلیدهای رمزنگاری را بر روی سیستم تعریف می‌کنیم. دستور زیر دو فایل به نام privkey.pem و fullchain.pem بر روی سرور شما ایجاد می‌کند.

openssl req -x509 -newkey rsa:4096 -keyout privkey.pem -out fullchain.pem -sha256 -days 365 -nodes

گام پنجم

دستور قبلی، سوال‌هایی را از شما می‌پرسد. نیازی به پاسخ دادن هیچ کدام از سوال‌ها نیست مگر برای سوال Common Name که نام دامنه را از شما می‌پرسد.

image

در تصویر فوق مشاهده می‌کنید که ما از دامنه فرضی iranxray.hope.com استفاده کرده ایم. شما می‌توانید هر نام دلخواهی را استفاده کنید. این دامنه را یادداشت کنید، چون در حین ساخت VLESS و Trojan به آن نیاز خواهیم داشت.

گام ششم

با دستور زیر، به X-UI دسترسی خواهیم داد که فایل‌های ساخته شده برای رمزنگاری استفاده کند.

chmod ugo+rwx fullchain.pem
chmod ugo+rwx privkey.pem

گام هفتم

حال دو فایل بر روی سیستم شما ساخته شده. برای گرفتن آدرس کامل فایل‌ certificate دستور زیر را وارد کنید. نتیجه را یادداشت نمایید چون باید این آدرس را باید در X-UI وارد نمایید.

echo "$(pwd)/fullchain.pem"

و برای گرفتن آدرس کامل کلید خصوصی دستور زیر را وارد کنید. نتیجه را یادداشت نمایید چون باید این آدرس را باید در X-UI وارد نمایید

echo "$(pwd)/privkey.pem"

گام هشتم

تمام. برای راه‌اندازی پروتکل‌های VLESS و Trojan به دامنه و آدرس فایل‌هایی که در مراحل قبل یادداشت کردید، نیاز خواهیم داشت. ادامه را از مقاله ساخت کانفیگ دنبال کنید

ساخت کلید رمزنگاری معتبر با استفاده از Let's Encrypt (برای کاربران خفن!)

طی این مرحله اجباری نیست. اگر Self-Signed را ساخته‌اید، می‌توانید از اینجا گذر کنید. این مرحله حکم پرتاب سه امتیازی دارد. گرفتن کلید رمزنگاری معتبر از Let's Encrypt نیاز به خرید domain واقعی و انجام برخی تنظیمات دارد که برای کاربرهای مبتدی‌ دشوار می‌باشد اما در عوض امنیت بیشتری را برای کاربران‌تان فراهم خواهد کرد.

گام صفر

برای ساخت certificate با Let's Encrypt نیاز به یک domain واقعی دارید. می توانید از شرکت‌هایی مثل GoDaddy یا Namecheap برای خرید domain‌ استفاده کنید. هیچ فرقی ندارد که دامنه شما com. باشد یا net.‌و یا هر چیز دیگر. هر کدام ارزان‌‌تر بود بخرید. بعد از خرید دامنه باید با اعمال تغییرات در DNS کاری کنید که دامنه شما به آدرس IP سرور شما متصل شده باشد.

گام اول

پیش از طی مراحل بعدی، اطمینان حاصل کنید که پورت 80 بر روی سرور لینوکسی شما باز می‌باشد. برای باز کردن پورت می‌توانید به مقاله ما در مورد باز کردن پورت رجوع کنید تا پورت 80 را باز کنید. اپلیکیشن certbot نیاز دارد تا اطلاعات کلید را از روی پورت 80 دریافت کند.

گام دوم

ابتدا با دستور زیر، سطح اختیارات را بالا می‌بریم.

sudo -i

گام سوم

با دستور زیر، بانک اطلاعاتی اپلیکیشن‌های لینوکس را به روز می‌کنیم.

apt update && apt upgrade -y

گام چهارم

حالا certbot را نصب می‌کنیم تا بتوانیم به لطف پروژه Let's Encrypt کلیدهای معتبر TLS بسازیم.

sudo apt-get install certbot

گام پنجم

بعد از نصب، دستور زیر را اجرا کنید تا کلیدهای رمزنگاری بر روی سیستم شما ساخته شود. در دستور پایین، از ایمیل فرضی [email protected] و دامنه فرضی iran-free-xray.com استفاده کرده‌ایم. شما باید این مقادیر را تغییر دهید و نام دامنه‌ای که انتخاب می‌کنید باید مطابق با دامنه‌ای باشد که خریداری کرده‌اید.

⭐ دقت کنید که NameServer ها بایستی به آدرس IP سیستم شما اشاره کنند وگرنه نمی‌توانید certificate را صادر کنید.

sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email [email protected] -d iran-free-xray.com 

در حین صدور certificate، سوال زیر در مورد اشتراک گذاری اطلاعات پرسیده می‌شود. می توانید N را وارد کنید تا اطلاعات شما محفوظ بماند.

image

⭐ اگر با خطای زیر مواجه شدید، احتمالا به این خاطر هست که پورت 80‍ را باز نکرده‌اید. برای باز کردن پورت می‌توانید به مقاله ما در مورد باز کردن پورت رجوع کنید تا پورت 80 را باز کنید.

image

گام ششم

اگر همه چیز خوب پیش رفته باشد، باید پیغامی شبیه زیر دریافت کنید. همانطور که در عکس می‌بینید، آدرس فایل‌هایی certificate به شما نشان داده شده‌اند. هم آدرس fullchain.pem و هم آدرس privkey.pem را کپی کنید و دم دست داشته باشید. ما به آدرس این فایل‌ها نیاز خواهیم داشت تا بتوانیم Trojan و یا VLESS+XTLS را بسازیم.

image

گام هفتم

از این لحظه به بعد، برای باز کردن پورتال در مرورگر به جای استفاده از http://ip:port باید از دامنه برای باز کردن پورتال استفاده کنید. مثلا اگه دامنه شما iran-free-xray.com باشد و از پورت 34567‌ استفاده می‌کنید، باید از این به بعد از آدرس http://iran-free-xray.com:34567 استفاده کنید.

image

اگر به ایراد دسترسی به فایل‌های سرتیفیکیت برخوردید (موارد خیلی نادر) یه سر به این مقاله بزنید تا مشکل دسترسی رو حل کنید. ایرادهای دسترسی به سرتیفیکیت معمولا با این پیغام ظاهر میشه (که البته ممکنه دلایل دیگه هم داشته باشه:

Fail to detect internet connection io read/write on closed pipe

تمام. از آدرس دامنه استفاده کنید تا به پورتال بروید و ادامه را از مقاله ساخت کانفیگ دنبال کنید.