در این آموزش شما یاد خواهید گرفت که چگونه گواهی SSL معتبر را بر روی سرور AlmaLinux خود که از وب سرور Nginx استفاده میکند نصب کنید. شما از Let's Encrypt برای دریافت گواهی برای دامنه خود استفاده خواهید کرد. Let's Encrypt یک مرکز صادر کننده گواهی SSL رایگان و خودکار است که امکان فعال سازی HTTPS بر روی وبسایتها را فراهم میکند. این سرویس توسط یک اتحادیه به نام Internet Security Research Group (ISRG) ارائه میشود و اهداف اصلی آن افزایش امنیت و حریم خصوصی در اینترنت است. Let's Encrypt به صورت رایگان امکان فعال سازی گواهی SSL/TLS را برای وبسایتها فراهم میکند و به طور خودکار این گواهیها را صادر و نصب میکند.
زمینه و پیشنیازها
این آموزش فرض میکند که شما از یک سیستم AlmaLinux در اینترنت با یک رکورد DNS A یا CNAME معتبر استفاده میکنید. یک رکورد A به سادگی یک نام دامنه را به آدرس IP دستگاهی که آن دامنه را میزبانی میکند، متصل میکند. CNAME، که مخفف Canonical Name است، یک نام مستعار برای یک دامنه دیگر است. جهت خرید سرور مجازی با سیستم عامل لینوکس میتوانید کلیک نمایید.
برای نصب یک گواهی SSL، شما باید یک وب سرور روی سیستم خود نصب داشته باشید. در این آموزش، شما Nginx را به عنوان وب سرور خود نصب خواهید کرد.
توجه: این آموزش نصب یک گواهی SSL برای دامنه example.com را نشان میدهد. با اینکه این دامنه در طول این آموزش استفاده خواهد شد، اما میبایست دامنه خود را هنگام دنبال کردن این آموزش استفاده کنید.
اتصال به سرور به عنوان روت
بسیاری از دستوراتی که شما در حال اجرا کردن آنها هستید نیاز به دسترسی روت دارند. به سرور لینوکس خود به عنوان کاربر root متصل شوید. اگر با یک حساب دیگر وارد شدهاید، به حساب root تغییر دهید. میتوانید با دستور "su" به حساب root تغییر دهید:
- su
نصب و پیکربندی وب سرور Nginx
نصب وب سرور Nginx:
dnf install -y nginx
بعد، باید یک خط را در فایل /etc/nginx/nginx.conf جایگزین کنید. آن را با ویرایشگر مورد علاقه خود باز کنید.
nano /etc/nginx/nginx.conf
(توجه: شما میتوانید "nano" را با دستور "dnf install -y nano" نصب کنید.)
خطی که میخواند:
;_ server_name
"_" را به نام دامنه خود تغییر دهید. مطمئن شوید که پس از دامنهتان، نقطهویرگول (;) را بعد از انتهای خط اضافه کنید:
;server_name example.com
با این دستور، هرگونه خطاهای نحوی یا اشتباهات تایپی را بررسی کنید:
nginx -t
اگر پیامی مانند "test failed" دریافت کردید، ویرایشات خود را در فایل /etc/nginx/nginx.conf اصلاح کنید و دوباره امتحان کنید.
برای اطمینان از اجرا شدن وب سرور هنگام بوت شدن، و همچنین برای استارت و فعال کردن وب سرور نیاز به دستور زیر دارید:
systemctl enable --now nginx
شما میتوانید با بررسی وضعیت آن، اطمینان حاصل کنید که وب سرور راهاندازی شده است.
systemctl status nginx
اگر Nginx به درستی در حال اجرا باشد، شما چیزی شبیه به این را خواهید دید:
همچنین می توانید از گزینه "is-active" برای "systemctl" استفاده کنید تا ببینید آیا در حال اجرا است یا خیر.
systemctl is-active nginx
ترافیک ورودی HTTP و HTTPS
اگر از فایروال لینوکس محلی استفاده میکنید، دستورات زیر را برای اجازه ترافیک HTTP و HTTPS اجرا کنید:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
تست وب سرور
یک مرورگر وب باز کنید و به نام دامنهتان متصل شوید. در این مثال، من از http://example.com استفاده شده، اما از دامنه خود استفاده کنید. در این بخش، باید یک صفحه آزمایشی را ببینید.
نصب snapd
Snapd در مخزن پیشفرض موجود نیست، بنابراین باید مخزن EPEL را با دستور زیر اضافه کنیم:
dnf install -y epel-release
حالا میتوانید بسته "snapd" را نصب کنید:
dnf install -y snapd
بعد، واحد "systemd" را که ارتباط اصلی snapd را مدیریت میکند، فعال کنید:
systemctl enable --now snapd.socket
حالا، پشتیبانی کلاسیک اسنپ را فعال کنید:
ln -s /var/lib/snapd/snap /snap
نصب برنامه Certbot
از snap برای نصب certbot استفاده کنید:
snap install --classic certbot
هنگام اجرای اcertbot ، nginx را برای ترافیک HTTPS پیکربندی میکند، nginx را به کاربردن گواهی تازه تولید شده برای آن ترافیک میگوید و تنظیمات تجدید خودکار گواهی شما راهاندازی میکند.
وقتی certbot را اجرا میکنید، آن تنظیماتی را برای ترافیک HTTPS nginx اعمال میکند، که nginx را به منظور استفاده از گواهی جدید تولید شده برای این ترافیک آگاه میکند، و تنظیمات برای تمدید خودکار گواهی شما راهاندازی میشود.
snap/bin/certbot --nginx/
(توجه: ابزار certbot در $ PATH شما وجود ندارد مگر اینکه خارج شوید و دوباره وارد شوید. به همین دلیل از مسیر مطلق /snap/bin/certbot برای اجرای آن استفاده میکنیم.)
هنگام نصب، زمانی که آدرس ایمیل شما خواسته شد، آن را وارد کرده و همچنین به سوالات دیگر با فشار دادن "y" و "yes" پاسخ دهید.
تمدید خودکار گواهی SSL
میتوانید عملکرد تمدید خودکار گواهی SSL خود را با اجرای این دستور آزمایش کنید:
snap/bin/certbot renew --dry-run/
اگر تمدید خودکار بدرستی عمل کند، شما پاسخی مانند "Congratulations, all simulated renewals succeeded" دریافت خواهید کرد.
تایید گواهی SSL
یک مرورگر وب باز کنید و از طریق HTTPS به دامنهتان متصل شوید. اگر نصب گواهی موفق بوده باشد، هیچ پیام خطا یا هشداری درباره گواهی SSL از مرورگر وب شما دریافت نخواهید کرد.
همچنین میتوانید از طریق خط فرمان وب سرور را با استفاده از ابزار curl بررسی کنید:
curl https://exmple.com
اگر گواهی معتبر باشد، curl محتوای وبسایت را بدون هیچ خطا یا هشداری برمیگرداند.
و تمام!! در این لحظه، شما باید یک گواهی SSL معتبر که به صورت خودکار تمدید میشود داشته باشید! امیدواریم که این مقاله به شما کمک کرده باشد تا گواهی ssl خود را بر روی سرور almalinux خود نصب کرده باشید. برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.