آموزش ها-هاست نگار

طریقه ایمن سازی Apache با Let's Encrypt در اوبونتو 22.04

 

Let’s Encrypt یک مرجع صدور گواهی (CA) است که دریافت و نصب گواهی‌های رایگان TLS/SSL را تسهیل می‌کند و در نتیجه HTTPS رمزگذاری شده را در وب سرورها فعال می‌کند. این فرآیند با ارائه یک سرویس گیرنده نرم افزاری بنام Certbot، که سعی می کند اکثر (اگر نه همه) مراحل مورد نیاز را خودکار کند. در حال حاضر، کل فرآیند دریافت و نصب گواهی SSL بر روی Apache و Nginx کاملاً خودکار است.
 
در این آموزش، از Certbot برای دریافت گواهینامه SSL رایگان برای آپاچی در اوبونتو 22.04 استفاده می‌کنید و مطمئن میشویم که این گواهی برای تمدید خودکار تنظیم شده است.
این آموزش از یک فایل هاست مجازی (VirtualHost) مجزا به جای فایل تنظیمات پیش‌فرض Apache برای راه‌اندازی وب‌سایت استفاده می‌کند که توسط Let’s Encrypt ایمن می‌شود. توصیه می‌کنیم فایل‌های هاست مجازی آپاچی جدید برای هر دامنه میزبانی شده در سرور ایجاد کنید، زیرا به جلوگیری از اشتباهات رایج کمک می‌کند و فایل‌های پیکربندی پیش‌فرض را به‌عنوان یک راه‌اندازی بازگشتی حفظ می‌کند.
 
پیش نیازها
  • یک سرور اوبونتو 22.04 با یک کاربر غیر روت با امتیازات مدیریت sudo و فایروال فعال راه اندازی شده است. شما می توانید با دنبال کردن آموزش راه اندازی اولیه سرور ما برای Ubuntu 22.04 این را تنظیم کنید.
  • یک نام دامنه کاملاً ثبت شده این آموزش از your_domain به عنوان مثال استفاده می کند.
  • هر دو رکورد DNS زیر برای سرور شما تنظیم شده است.
    - یک A رکورد با your_domain که به آدرس IP عمومی سرور شما اشاره دارد.
    - یک A رکورد با www.your_domain که به آدرس IP عمومی سرور شما اشاره می کند.
  • آپاچی را با دنبال کردن آموزش نحوه نصب Apache در اوبونتو 22.04 نصب کنید. مطمئن شوید که یک فایل میزبان مجازی برای دامنه خود دارید. این آموزش از /etc/apache2/sites-available/your_domain.conf به عنوان مثال استفاده می کند.
مرحله 1 - نصب Certbot
برای دریافت گواهی SSL با Let’s Encrypt، باید نرم افزار Certbot را روی سرور خود نصب کنید. برای این کار از مخازن بسته پیش‌فرض اوبونتو استفاده خواهید کرد.
ابتدا فهرست بسته محلی را به روز کنید:
sudo apt update
شما به دو پکیج نیاز دارید: certbot و python3-certbot-apache. دومی افزونه‌ای است که Certbot را با آپاچی ادغام می‌کند و به‌طور خودکار دریافت گواهی و پیکربندی HTTPS را در وب سرور خود با یک دستور ممکن می‌سازد:
sudo apt install certbot python3-certbot-apache
از شما خواسته می شود که نصب را با فشار دادن Y و سپس ENTER تأیید کنید.
Certbot اکنون بر روی سرور شما نصب شده است. در مرحله بعد، پیکربندی آپاچی را تأیید می‌کنید تا مطمئن شوید که هاست مجازی شما به درستی تنظیم شده است. این اطمینان حاصل می‌کند که اسکریپت certbot می‌تواند دامنه‌های شما را شناسایی کند و وب سرور شما را برای استفاده خودکار از گواهی SSL جدیدتان پیکربندی کند.
 
مرحله 2 - پیکربندی میزبان مجازی آپاچی خود را بررسی کنید
برای به دست آوردن و پیکربندی خودکار SSL برای وب سرور خود، Certbot باید میزبان مجازی صحیح را در فایل های پیکربندی آپاچی شما پیدا کند. نام(های) دامنه سرور شما از دستورات ServerName و ServerAlias تعریف شده در بلوک پیکربندی VirtualHost شما بازیابی می شود.
اگر مرحله راه اندازی هاست مجازی را در آموزش نصب آپاچی دنبال کرده اید، باید یک بلوک VirtualHost برای دامنه خود در آدرس /etc/apache2/sites-available/your_domain.conf با نام ServerName و همچنین دستورالعمل های ServerAlias از قبل تنظیم شده باشد.
برای تأیید اینکه این تنظیم شده است، فایل هاست مجازی دامنه خود را با استفاده از nano یا ویرایشگر متن دلخواه خود باز کنید:
sudo nano /etc/apache2/sites-available/your_domain.conf
خطوط ServerName و ServerAlias موجود را پیدا کنید. آنها باید به شرح زیر فهرست شوند:
 
...
ServerName your_domain
ServerAlias www.your_domain
...
 
اگر قبلاً ServerName و ServerAlias خود را به این صورت تنظیم کرده‌اید، می‌توانید از ویرایشگر متن خود خارج شده و به مرحله بعدی بروید. اگر پیکربندی میزبان مجازی فعلی شما با مثال مطابقت ندارد، آن را مطابق با آن به روز کنید. اگر از nano استفاده می‌کنید، می‌توانید با فشار دادن CTRL+X، سپس Y و ENTER خارج شوید تا تغییرات خود را در صورت وجود تأیید کنید. سپس دستور زیر را برای تایید تغییرات خود اجرا کنید:
sudo apache2ctl configtest
باید Syntax OK را به عنوان پاسخ دریافت کنید. اگر با خطایی مواجه شدید، فایل میزبان مجازی را دوباره باز کنید و اشتباهات تایپی را بررسی کنید. هنگامی که Syntax فایل پیکربندی شما درست شد، Apache را مجدداً بارگیری کنید تا تغییرات اعمال شوند:
sudo systemctl reload apache2
با این تغییرات، Certbot می تواند بلاک VirtualHost صحیح را پیدا کرده و آن را به روز کند. در مرحله بعد، فایروال را برای اجازه دادن به ترافیک HTTPS به روز می کنید.
 
مرحله 3 - اجازه دادن به HTTPS از طریق فایروال
اگر فایروال UFW را فعال کرده اید، همانطور که توسط راهنماهای پیش نیاز توصیه شده است، باید تنظیمات را برای اجازه دادن به ترافیک HTTPS تنظیم کنید. پس از نصب، آپاچی چند پروفایل مختلف برنامه UFW را ثبت می کند. شما می توانید از نمایه کامل آپاچی استفاده کنید تا به ترافیک HTTP و HTTPS روی سرور خود اجازه دهید. برای بررسی اینکه چه نوع ترافیکی در حال حاضر روی سرور شما مجاز است، وضعیت را بررسی کنید:
sudo ufw status
اگر راهنمای نصب آپاچی ما را دنبال کرده باشید، خروجی مشابه زیر خواهید داشت، به این معنی که در حال حاضر فقط ترافیک HTTP در پورت 80 مجاز است:
 
Output
Status: active
 
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
 
برای اجازه دادن به ترافیک HTTPS، به پروفایل «Apache Full» دسترسی دهید:
sudo ufw allow 'Apache Full'
سپس پروفایل اضافی "Apache" را حذف کنید:
sudo ufw delete allow 'Apache'
وضعیت شما به صورت زیر نمایش داده می شود:
sudo ufw status
Output
Status: active
 
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
 
اکنون آماده اجرای Certbot و دریافت گواهینامه های خود هستید.
 
مرحله 4 - دریافت گواهی SSL
خCertbot راه های مختلفی را برای دریافت گواهینامه SSL از طریق افزونه ها ارائه می دهد. پلاگین آپاچی، پیکربندی مجدد آپاچی و بارگیری مجدد پیکربندی در صورت لزوم انجام می دهد. برای استفاده از این افزونه، موارد زیر را اجرا کنید:
sudo certbot --apache
این اسکریپت از شما می خواهد که به یک سری سوالات پاسخ دهید تا گواهی SSL خود را پیکربندی کنید. ابتدا از شما یک آدرس ایمیل معتبر می خواهد. این ایمیل برای اعلان‌های تمدید و اعلامیه‌های امنیتی استفاده خواهد شد.
 
پس از ارائه یک آدرس ایمیل معتبر، ENTER را فشار دهید تا به مرحله بعدی بروید. سپس از شما خواسته می شود که تأیید کنید که آیا با شرایط خدمات Let’s Encrypt موافقت می کنید. می توانید با فشار دادن Y و سپس ENTER تأیید کنید.
در مرحله بعد، از شما پرسیده می شود که آیا می خواهید ایمیل خود را برای دریافت اخبار و سایر اطلاعات با موسسه Electronic Frontier به اشتراک بگذارید. اگر مایل نیستید، N تایپ کنید. در غیر این صورت، Y را بنویسید و سپس ENTER را فشار دهید تا به مرحله بعدی بروید.
 
مرحله بعدی از شما می خواهد که به Certbot اطلاع دهید که می خواهید HTTPS را برای کدام دامنه فعال کنید. نام دامنه های فهرست شده به طور خودکار از پیکربندی هاست مجازی Apache شما به دست می آید، بنابراین مهم است که مطمئن شوید که تنظیمات ServerName و ServerAlias صحیح را در VirtualHost خود پیکربندی کرده اید. اگر می‌خواهید HTTPS را برای همه نام‌های دامنه فهرست شده فعال کنید (توصیه می‌شود)، می‌توانید دستور را خالی بگذارید و برای ادامه، ENTER را فشار دهید. در غیر این صورت، دامنه‌هایی را که می‌خواهید HTTPS را برای آن‌ها فعال کنید، با فهرست کردن هر عدد مناسب، جدا شده با کاما و/یا فاصله انتخاب کنید، سپس ENTER را فشار دهید:
 
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your_domain
2: www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
:blank to select all options shown (Enter 'c' to cancel)
 
پس از این مرحله، پیکربندی Certbot به پایان می رسد و نکات نهایی در مورد گواهی جدید و محل قرارگیری فایل های تولید شده به شما نمایش داده می شود.
گواهی شما اکنون نصب و در پیکربندی آپاچی بارگذاری شده است. سعی کنید وب سایت خود را با استفاده از https:// بارگیری مجدد کنید و به نشانگر امنیتی مرورگر خود توجه کنید. باید نشان دهد که سایت شما به درستی ایمن شده است، معمولاً توسط یک نماد قفل در نوار آدرس نمایش میدهد.
در مرحله بعدی و نهایی، ویژگی تمدید خودکار Certbot را آزمایش خواهید کرد که تضمین می کند گواهی شما به طور خودکار قبل از تاریخ انقضا تمدید می شود.
 
مرحله 5 - تأیید تمدید خودکار Certbot
گواهینامه های Let’s Encrypt فقط برای نود روز معتبر هستند. این کار برای تشویق کاربران به خودکارسازی فرآیند تمدید گواهینامه و همچنین اطمینان از این است که گواهینامه های سوء استفاده شده یا کلیدهای دزدیده شده زودتر منقضی می شوند.
بسته certbot که شما نصب کرده اید با اضافه کردن یک اسکریپت تمدید در /etc/cron.d که توسط یک سرویس systemctl به نام certbot.timer مدیریت می شود، از تمدیدها مراقبت می کند. این اسکریپت دو بار در روز اجرا می شود و به طور خودکار هر گواهی را که ظرف سی روز پس از انقضا باشد تمدید می کند.
برای بررسی وضعیت این سرویس و اطمینان از فعال بودن آن، موارد زیر را اجرا کنید:
sudo systemctl status certbot.timer
خروجی شما مشابه موارد زیر خواهد بود:
 
Output
 certbot.timer - Run certbot twice daily ●
<:Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset
Active: active (waiting) since Mon 2022-04-11 20:52:46 UTC; 4min 3s ago
Trigger: Tue 2022-04-12 00:56:55 UTC; 4h 0min left
Triggers: ● certbot.service
.Apr 11 20:52:46 jammy-encrypt systemd[1]: Started Run certbot twice daily
 
برای آزمایش فرآیند تمدید، می‌توانید آن را تست نمایید:
sudo certbot renew --dry-run
اگر در پاسخ هیچ خطایی دریافت نکردید، همه چیز آماده است. در صورت لزوم، Certbot گواهینامه های شما را تمدید می کند و Apache را مجدداً بارگذاری می کند تا تغییرات را دریافت کند. اگر فرآیند تمدید خودکار ناموفق باشد، Let’s Encrypt پیامی به ایمیلی که مشخص کرده‌اید ارسال می‌کند و به شما هشدار می‌دهد که گواهینامه شما در آستانه انقضا است.
در این آموزش، شما Certbot Client Let’s Encrypt را نصب کردید، یک گواهی SSL را برای دامنه خود پیکربندی و نصب کردید و تأیید کردید که سرویس تمدید خودکار Certbot در systemctl فعال است. امیدواریم این مقاله آموزشی برای شما مفید بوده باشد، برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.
 
 
 

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

خرید هاست

 

آموزش های مرتبط