دریافت گواهینامه SSL (Certificate)
گواهینامه SSL چیست؟
گواهینامه امنیتی SSL که مخفف Secure Socket Layer است، پروتکل امنیتی برای رمزگذاری بر روی دادههایی است که بین سرور و کاربر منتقل میشود. به عبارتی زمانی که حرف از امنیت اطلاعات در بستر اینترنت باشد کاربرد گواهی نامه SSL مشخص میشود. به کارگیری این گواهی نامه مثل این است که بر روی اطلاعات خود یک لایه امنیتی و کدگذاری شده ایجاد کنیم. این کار اطلاعات و دادهها را از خطرات اینترنتی مثل حملات هکرها حفظ میکند. در حال حاضر هم برای ساخت VPN با برخی روش ها نیازمند استفاده از دامین به همراه گواهینامه SSL هستیم.
(در سمت راست کادر هر دستور، یک آیکونِ کپی وجود دارد. آن را کلیک کنید کل دستور کپی میشود و میتوانید در ترمینال پیست کنید)
شروع آموزش:
روش اول: برای حالتی که سرور خام داریم و فقط سابدامین را در کلاودفلر تعریف کردهایم و گزینهی پروکسی آن در کلاودفلر خاموش است.
روش دوم: برای حالتی که یک پنل x-ui مثل سنایی/ثنایی/علیرضا روی سرور داریم و یا قصد نصب یکی از این پنلها را داریم. سابدامین را در کلاودفلر تعریف کردهاید و گزینهی پروکسی آن در کلاودفلر خاموش است.
🔖 نکته مهم: در زمان گرفتن گواهینامه (سرتیفیکیت)، باید پروکسی ساب دامین شما در کلاودفلر خاموش باشد. پس از دریافت سرتیفیکیت، پروکسی را روشن کنید. اگر از قبل روشن بود و آن را خاموش کردید، دو سه دقیقه صبر کنید بعد اقدام به دریافت سرتیفیکیت نمایید. در ضمن پورت ۸۰ سرورتان هم باید آزاد باشد که اگر سرور را تازه ران و تهیه کردهاید (یا تازه سیستم عامل نصب کردهاید) پورت ۸۰ آن آزاد است و نیاز به کاری نیست.
روش اول
از طریق یک ترمینال SSH به سرور متصل میشویم. مثل همیشه ابتدا دستور زیر را بزنید:
apt update && apt upgrade -y
سپس دستورات زیر را به ترتیب و مجزا در سرور پیست کرده و Enter بزنید:
apt install curl socat -y
apt install cron
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
در دستور زیر بجای [email protected] ایمیل خود را بگذارید و دستور را وارد کنید:
~/.acme.sh/acme.sh --register-account -m x@y.com
در دستور زیر بجای sub.domain.com سابدامین خود را جایگزین کنید و بزنید:
~/.acme.sh/acme.sh --issue -d sub.domain.com --standalone
پس از دستور فوق و کمی صبر، چیزی شبیه زیر را در ترمینال مشاهده خواهید کرد که یعنی سرتیفیکیت صادر شده است:
Your cert is in: /root/.acme.sh/sub.domain.com/sub.domain.com.cer
Your cert key is in: /root/.acme.sh/sub.domain.com/sub.domain.com.key
The intermediate CA cert is in: /root/.acme.sh/sub.domain.com/ca.cer
And the full chain certs is there: /root/.acme.sh/sub.domain.com/fullchain.cer
با دستور زیر سرتیفیکیت ها را به شاخهی root انتقال خواهیم داد. فراموش نشود که بجای sub.domain.com سابدامین خود را جایگزین کنید:
~/.acme.sh/acme.sh --installcert -d sub.domain.com --key-file /root/private.key --fullchain-file /root/cert.crt
کار تمام است. همین که بدانیم دو فایل داریم در شاخهی root سرور با نام های cert.crt و private.crt کافی است. مسیرشان هم بصورت زیر:
/root/cert.crt
/root/private.key
هر جا قرار شد سرتیفیکیت را مشخص کنیم، معمولاً باید با مسیر آن را وارد کنیم، مثل ۲ خط بالا. اصطلاحاً اولی سرتیفیکیت است و دومی کلید خصوصی.
روش دوم:
قرار نیست اینجا روش نصب و پیکرهبندی پنل x-ui را آموزش دهیم. آموزش نصب و استفاده از آن در یوتیوب فراوان موجود است.
فرض بر این است که یک پنل x-ui نصب دارید که نیاز به سرتیفیکیت دارد. گزینههایی که در ادامه خواهم گفت بر اساس پنل سنایی/ثنایی است. برای پنل علیرضا مشابه است که شمارهی گزینهها را تطبیق خواهید داد. پس از نصب پنل، برای دریافت سرتیفیکیت، در خط دستور لینوکس x-ui را تایپ کنید و سپس گزینهی ۱۶ (SSL Certificate Management) را انتخاب نمائید. شبیه تصویر زیر:
سپس گزینه ۱ (Get SSL) را انتخاب کنید.
پس از چند لحظه از شما میخواهد که دامین یا سابدامین را وارد کنید.
سوال بعدی در مورد پورت است که فقط Enter را بزنید.
کمی صبر کنید سرتیفیکیت برای شما صادر خواهد شد. شبیه تصویر زیر:
در تصویر دو فایل داریم به نام های fullchain.pem و privkey.pem این ها فایل های سرتیفیکیت هستند و مسیرشان بصورت زیر است:
/root/cert/sub.domain.com/fullchain.pem
/root/cert/sub.domain.com/privkey.pem
برای قرار دادن فایلهای سرتیفیکیت در پنل x-ui ، باید با آدرس IP وارد پنل شوید. در منوی Panel Settings تب General در فیلد Public Key Path مسیر مربوط به فایل fullchain.pem و در فیلد Private Key Path مسیر مربوط به فایل privkey.pem را قرار دهید. مثل تصویر:
سپس گزینه Save را در بالای صفحه بزنید و در انتها گزینهی Restart Panel. حالا تب جدیدی در براوزر باز کنید و این بار با آدرس سابدامین و پیشوند https وارد پنل شوید. بصورت زیر:
https://sub.domain.com:port
تمام.
سلام،تشکر
کاش سرتیفیکت از خود کلودفلر هم آموزش میدادید.
سلام. خواهش میکنم.
تابحال در موردش مطالعهای نداشتم. حتما یه فرصتی رو براش میذارم. ممنونم.
سلام چطوری هم برای ipv4 و ipv6 سرتیفیکیت بگیریم من adgurdhome روی سرورم نصب کردم برای اون هم میخوام یه سرتیفیکیت جدا بگیرم و adgurdhome روی پورت ۸۰ هست چطوری پورتش رو تغییر بدم
سلام، خوبم. امیدوارم شما هم تندرست باشین. در کلاودفلر هر دو IP رو براش dns بسازین. برای IPv4 با A و برای IPv6 با AAAA. برای دامنه که Cert رو میگیرین، برای هر دو IP تون میشه دیگه.
در مورد adguard نمیدونم چطوری پورت رو تغییر بدین. شما میتونین دو dns متفاوت در کلاودفلر تعریف کنین و به همون IP ها ارجاع بدین و با دو تا سابدامین Cert بگیرین.
a.domain.com به IPv4 و IPv6
b.domain.com به همون IPv4 و IPv6
بسیار عالی
ممنون از آموزش خوبت
صفای شما آقا محمد 👍
سلام و تشکر بابت آموزش
من هیدیفای و پنل s-ui رو نصب کردم و برای s-ui هم یه ساب دامین فعال کردم.
سوالی که دارم اینه که میشه باز هم برای یه ساب دامین دیگه مربوط به همون دامنه سرتیفیکت رو فعال کنم؟
من از راه اول خواستم برم که ارور زیر رو داد:
tcp port 80 is already used by ((“haproxy”….
برای راه اندازی brook با دامنه نیاز دارم.
سلام. خواهش میکنم.
بله شما میتونید تعداد نامحدودی ساب دامین تعریف کنین و برای هر کدام هم سرتیفیکیت جدا بگیرین.
ارور به این دلیله که haproxy در پنل هیدیفای داره از پورت ۸۰ استفاده میکنه. برای دریافت از s-ui استفاده کنید. در خط فرمان دستور s-ui رو بزنید و برای دریافت سرتیفیکیت گزینهی ۲۶ رو انتخاب کنین و پورتی که سوال میشه رو مثلا ۲۰۸۷ بزنین.