نصب SSL در Ubuntu با استفاده از Certbot
امروزه استفاده از گواهیهای SSL برای برقراری ارتباطات امن و رمزنگاری شده در وبسایتها یک ضرورت انکارناپذیر است. گواهی SSL نه تنها اطلاعات کاربران را در برابر حملات سایبری محافظت میکند، بلکه به بهبود اعتبار سایت و رتبهبندی آن در موتورهای جستجو نیز کمک میکند. Let’s Encrypt به عنوان یک مرجع معتبر، گواهیهای SSL رایگان و معتبر ارائه میدهد که به راحتی میتوان آنها را با استفاده از ابزاری مانند Certbot نصب و مدیریت کرد. در این مقاله، مراحل نصب و پیکربندی Certbot روی سرورهای Ubuntu را به طور کامل بررسی میکنیم تا بتوانید به سادگی گواهی SSL را برای وبسایت خود فعال کنید و از مزایای آن بهرهمند شوید.
ابتدا بیایید مروری کوتاه داشته باشیم که SSL چیست. SSL (Secure Sockets Layer) یک پروتکل امنیتی است که برای رمزگذاری ارتباط بین کاربر و سرور استفاده میشود. این فناوری از انتقال دادههای حساس مانند اطلاعات ورود، جزئیات کارتهای اعتباری و دیگر اطلاعات محرمانه در اینترنت محافظت میکند. SSL با ایجاد یک لایه امن، از دسترسی هکرها به این اطلاعات جلوگیری میکند.
فهرست مطالب
نصب Certbot در Ubuntu 20.04
اگر در این زمینه تازه وارد هستید، قبل از این که شروع کنید باید بدانید که اوبونتو چیست. همانطور که میدانید، اوبونتو یک سیستمعامل و توزیع رایگان و متنباز بر پایه لینوکس است که برای استفاده در رایانههای شخصی، سرورها و دیگر دستگاهها طراحی شده است. این سیستمعامل کاربرپسند و پایدار است و بهطور گسترده در سراسر جهان استفاده میشود.
Ubuntu 20.04 یکی از نسخههای بلندمدت (LTS) اوبونتو است که در آوریل 2020 منتشر شد. این نسخه تا 5 سال پشتیبانی میشود و برای محیطهای حرفهای و سرورها مناسب است. Ubuntu 20.04 با بهبود عملکرد، امنیت و پشتیبانی از سختافزارهای جدید، یکی از محبوبترین نسخههای اوبونتو محسوب میشود، در نتیجه ما نیز قصد داریم در این راهنما از این نسخه استفاده کنیم. اگر در این زمینه دانش تخصصی ندارید، توصیه میکنیم از متخصصان فنی برای مدیریت و پشتیبانی لینوکس در سرور خود استفاده کنید.
ابتدا با استفاده از SSH و به عنوان کاربر root به سرور خود متصل شوید. قبلاً برای نصب Certbot (ابزاری برای دریافت گواهی SSL) از بستهای به نام python-certbot-apache استفاده میشد، اما اکنون Certbot توصیه میکند که از snapd برای نصب در سیستمعامل Ubuntu استفاده کنید.
به طور کلی 3 روش برای نصب Certbot وجود دارد شامل: Apt، PIP و Snapd که در ادامه به توضیح هر سه روش میپردازیم.
نصب Certbot در Ubuntu با استفاده از Apt
سرورهای ابری و سرورهای اختصاصی میتوانند از Apt برای نصب Certbot استفاده کنند.
- ابتدا لیست بستهها را به کمک دستور زیر بهروزرسانی کنید:
sudo apt update
Certbot را برای آپاچی یا NGINX نصب کنید:
- برای آپاچی:
sudo apt-get install certbot python3-certbot-apache
- برای NGINX:
sudo apt-get install certbot python3-certbot-nginx
نصب Certbot در Ubuntu با استفاده از PIP
اگر از سرور ابری استفاده میکنید، میتوانید Certbot را با PIP نصب کنید.
- ابتدا با اجرای دستور زیر PIP را نصب کنید:
sudo apt install python3 python3-venv libaugeas0
- یک محیط مجازی (Virtual Environment) ایجاد کنید:
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
- Certbot را برای آپاچی (یا NGINX) نصب کنید:
- برای آپاچی:
sudo /opt/certbot/bin/pip install certbot certbot-apache
- برای NGINX:
sudo /opt/certbot/bin/pip install certbot certbot-nginx
4. با اجرای دستور زیر یک Symlink ایجاد کنید تا Certbot به درستی اجرا شود:
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
با انجام این مراحل، Certbot به درستی روی سرور شما نصب و آماده استفاده خواهد بود.
نصب Certbot در Ubuntu با استفاده از snapd
- ابتدا snapd را نصب کنید:
sudo apt install snapd
- مطمئن شوید که آخرین نسخه snapd نصب شده است:
sudo snap install core; sudo snap refresh core
- Certbot را با استفاده از snapd نصب کنید:
sudo snap install --classic certbot
- یک Symlink ایجاد کنید تا Certbot به درستی اجرا شود:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
نصب گواهی SSL با استفاده از Certbot
با اجرای Certbot میتوانید گواهیهای SSL را برای سایت های خود نصب و ایجاد کنید و فایل پیکربندی وبسرور خود را بهروزرسانی کنید تا درخواستهای HTTP به صورت خودکار به HTTPS تغییر مسیر دهند. یا میتوانید از گزینه certonly
استفاده کنید تا فقط گواهیهای SSL نصب شوند و تغییری در فایلهای سیستم اعمال نشود (این گزینه برای سایتهای آزمایشی که نیازی به SSL اجباری ندارند، توصیه میشود).
گزینه مناسب را با توجه به نیاز خود انتخاب کنید.
- نصب گواهی SSL برای همه دامنهها و پیکربندی redirect در وبسرور:
- برای آپاچی:
sudo certbot --apache
- برای NGINX:
sudo certbot --nginx
- نصب گواهی SSL برای یک دامنه خاص (اگر از نام میزبان سیستم خود استفاده میکنید، این گزینه توصیه میشود):
sudo certbot --apache -d example.com -d www.example.com
- فقط نصب گواهیهای SSL (بدون تغییر در فایلهای سیستم):
- برای آپاچی:
sudo certbot certonly --apache
- برای NGINX:
sudo certbot certonly --nginx
- یک آدرس ایمیل برای دریافت اطلاعیههای تمدید و امنیتی وارد کنید.
- شرایط استفاده از خدمات را بپذیرید.
- مشخص کنید که آیا میخواهید ایمیلهای مربوط به EFF را دریافت کنید یا خیر.
- اگر از شما پرسیده شد، انتخاب کنید که آیا میخواهید ترافیک HTTP به HTTPS ریدایرکت شود یا خیر:
- گزینه 1: بدون تغییر مسیر (هیچ تغییری در سرور اعمال نمیشود).
- گزینه 2: تغییر مسیر (ریدایرکت) تمام درخواستهای HTTP به HTTPS.
با انجام این مراحل، گواهی SSL شما نصب و تنظیمات لازم اعمال میشود.
عیبیابی SSL
پس از نصب گواهی Let’s Encrypt روی تنظیمات Certbot در Ubuntu، میتوانید وضعیت SSL وبسایت خود را در سایت WhyNoPadlock.com بررسی کنید تا خطاهای مربوط به Mixed Content را شناسایی کنید.
فایلهای گواهی برای هر دامنه در مسیر زیر ذخیره میشوند:
cd /etc/letsencrypt/live
گواهیهای Let’s Encrypt پس از 90 روز منقضی میشوند. برای جلوگیری از انقضای SSL، Certbot به صورت خودکار وضعیت SSL شما را دو بار در روز بررسی میکند و گواهیهایی که کمتر از 30 روز تا انقضای آنها باقی مانده باشد را تمدید میکند. شما میتوانید تنظیمات مربوط به این فرآیند را با استفاده از Systemd یا cron.d مشاهده کنید:
systemctl show certbot.timer
cat /etc/cron.d/certbot
برای اطمینان از اینکه فرآیند تمدید به درستی کار میکند، دستور زیر را اجرا کنید:
sudo certbot renew --dry-run
بهبود امنیت SSL
داشتن گواهی SSL و تنظیم ریدایرکت 301 برای اجبار به استفاده از HTTPS همیشه برای جلوگیری از حملات کافی نیست. هکرها راههایی برای دور زدن این اقدامات امنیتی و نفوذ به ارتباطات سرور پیدا کردهاند.
HTTP Strict Transport Security (HSTS) یک هدر امنیتی HTTP است که این مشکل را برطرف میکند. این هدر به مرورگرها دستور میدهد که فقط در صورت دریافت یک گواهی SSL معتبر، وبسایت شما را نمایش دهند. اگر مرورگر یک ارتباط ناامن دریافت کند، دادهها را به طور کامل رد میکند تا از کاربر محافظت شود. پیکربندی HSTS در وبسرورهایی مانند آپاچی و NGINX، در کنار نصب SSL در Ubuntu بسیار ساده است. با استفاده از این روش، امنیت وبسایت شما به طور قابل توجهی افزایش مییابد و از کاربران در برابر حملات احتمالی محافظت میشود.
منبع: inmotionhosting.com