نصب SSL در سرور اوبونتو 20.04 با Lets Encrypt
Let’s Encrypt یک مرجع صدور گواهینامه (CA) است که راه آسانی را برای دریافت و نصب گواهینامه های رایگان TLS/SSL ارائه می دهد.
و در نتیجه HTTPS رمزگذاری شده را در سرورهای وب فعال می کند.
برای نصب SSL در سرور اوبونتو به یک ابزار به نام certbot نیاز خواهیم داشت که به طور خودکار فرایند رمزگذاری را انجام می دهد.
نصب ssl در آپاچی و انجین ایکس به طور خودکار صورت می گیرد.
خب در ادامه با ما همراه باشید تا نحوه این کار را خدمت تان ارائه دهیم.
پیش نیازهای نصب SSL در سرور اوبونتو
برای دنبال کردن این آموزش، شما به موارد زیر نیاز خواهید داشت:
- یک نام دامنه ثبت شده: در این آموزش از example.com به جای نام دامنه استفاده میکنیم ولی شما دامنه خودتان را وارد کیند.
- یک رکورد A که با example.com به آدرس IP عمومی سرور شما اشاره کند.
- یک رکورد A که با www.example.com به آدرس IP عمومی سرور شما اشاره کند.
- نصب بودن وب سرور آپاچی در سرور
نصب Certbot در اوبونتو
اولین قدم برای استفاده از Let’s Encrypt برای دریافت گواهی SSL این است که نرم افزار Certbot را روی سرور خود نصب کنید.
برای نصب certbot از دستور زیر استفاده کنید:
sudo add-apt-repository ppa:certbot/certbot
سپس، با دستور زیر لیست بسته ها را بروزرسانی میکنیم:
sudo apt update
و در نهایت بسته Apache Certbot را با apt نصب کنید:
sudo apt install python-certbot-apache
Certbot اکنون آماده استفاده است، اما برای اینکه بتواند SSL را برای Apache پیکربندی کند، باید برخی از تنظیمات آپاچی را پیکربندی کنیم.
تنظیم گواهی SSL
Certbot باید بتواند بلوک میزبان مجازی صحیح را در پیکربندی آپاچی شما پیدا کند تا بتواند SSL را به طور خودکار پیکربندی کند.
certbot این کار را با جستجوی یک دستورالعمل به نام ServerName انجام میدهد که با دامنهای که شما برای آن گواهی درخواست میکنید باید مطابقت داشته باشید.
شما باید یک بلوک سرور مجازی برای دامنه خود در آدرس /etc/apache2/sites-available/example.com.conf داشته باشید که دستورالعمل ServerName از قبل به طور مناسب تنظیم کرده باشید.
برای بررسی، فایل میزبان مجازی دامنه خود را با استفاده از ویرایشگر nano یا ویرایشگر متن مورد علاقه خود این آدرس را باز کنید:
sudo nano /etc/apache2/sites-available/example.com.conf
خط ServerName موجود را پیدا کنید. شما باید چیزی شبیه به این قسمت پیدا کنید:
/etc/apache2/sites-available/example.com.conf ... ServerName example.com; ...
اگر کد مورد نظر را پیدا کردید از ویرایشگر خارج شوید به مرحله بعدی بروید، واگر اینطور نیست از قطعه کد بالا را اضافه کنید و از دستور زیر برای تایید پیکربندی های آپاچی استفاده کنید:
sudo apache2ctl configtest
اگر خطایی دریافت کردید، فایل میزبان مجازی را دوباره باز کنید و اشتباهات تایپی یا حروف های جا افتاده را بررسی کنید.
هنگامی که مشکل را بر طرف کردید باید آپاچی را دوباره راه اندازی کنید تا پیکربندی های جدید در آن ثبت شوند:
sudo systemctl reload apache2
Certbot اکنون می تواند بلوک سرور مجازی صحیح را پیدا کرده و آن را به روز کند.
در مرحله بعد،باید در فایروال پورت های https را باز کنیم.
اجازه دادن به HTTPS از طریق فایروال
اگر فایروال ufw را در سرور فعال کرده اید، باید تنظیمات را طوری تنظیم کنید که ترافیک HTTPS مجاز باشد.
برای بررسی وضعیت پورت های باز فایروال ufw از دستور زیر استفاده کنید:
sudo ufw status
احتمالاً به این صورت خواهد بود، به این معنی که فقط ترافیک HTTP در سرور وب مجاز است:
Status: active To Action From OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
برای اینکه بتوانید ترافیک HTTPS را نیز مجاز کنید، باید از دستور زیر استفاده کنید:
sudo ufw allow 'Apache Full' sudo ufw delete allow 'Apache'
دوباره با دستور زیر وضعیت فایروال را چک کنید:
sudo ufw status
حالا باید با خروجی شبیه به زیر مواجه شوید:
Status: active To Action From OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
بعد نوبت به اجرای certbot و دریافت خودکار گواهی ها می باشد:
تأیید تمدید خودکار Certbot
گواهینامه های Let’s Encrypt فقط برای نود روز اعتبار دارند.
این برای تشویق کاربران به خودکارسازی فرآیند تمدید گواهی است.
بسته certbot که ما نصب کردیم با افزودن یک اسکریپت تمدید کننده در /etc/cron.d این فرایند را برعهده دارد.
این اسکریپت دو بار در روز اجرا می شود و به طور خودکار هر گواهی را که ظرف سی روز آینده منقضی شود را تمدید می کند.
برای آزمایش فرآیند تمدید، میتوانید یکبار certbot را به صورت دستی فراخوانی کنید.
sudo certbot renew --dry-run
اگر هیچ خطایی مشاهده نکردید، همه چیز آماده است.
در صورت لزوم، Certbot گواهینامه های شما را تمدید می کند و Apache را مجدداً بارگذاری می کند تا تغییرات را اعمال کند.
اگر فرآیند تمدید خودکار شکست بخورد، Let’s Encrypt زمانی که گواهی های شما در حال منقض شدن هستند پیامی به ایمیلی که مشخص کردهاید ارسال میکند.
همچنین شما می توانید برای اینکه از فرایند صحح نصب ssl در سرور اوبونتو خود اطمینان پیدا کنید، از سایت ssl lab استفاده کنید.
نتیجه
در این آموزش، شما Certbot کلاینتLet’s Encrypt را نصب کردید،
گواهینامه های SSL را برای دامنه خود نصب کردید، آپاچی را برای استفاده از این گواهی ها پیکربندی کردید و تمدید خودکار گواهی را تنظیم کردید.
چنانچه در هر یک از این مراحل مشکلی داشتید خوشحال می شویم کمک تان کنیم.
درباره محمد حسین هاشمی
محمد حسین هاشمی هستم، دانشجوی رشته حسابداری ، طراح وب و برنامه نویس اندروید که از سال 96 شروع به یادگیری در زمینه های مختلف رایانه کرده ام و قصد دارم اطلاعاتی را که طی این چند سال کسب کرده ام را با شما به اشتراک بگذارم!
سایر نوشته های محمد حسین هاشمی
دیدگاهتان را بنویسید