در این مقاله، فرآیند نصب و پیکربندی Certbot روی سرور لینوکس را بررسی خواهیم کرد. به طور مفصل نحوه دریافت گواهی SSL/TLS از Let’s Encrypt برای دامنه شما را توضیح خواهیم داد. همچنین نحوه نصب آن روی یک وب سرور (مانند Nginx یا Apache) و تنظیم تمدید خودکار گواهی برای اطمینان از اتصال ایمن مداوم با منبع وب شما را شرح خواهیم داد.
Certbot ابزاری رایگان و متنباز است که برای دریافت و تمدید خودکار گواهینامههای SSL/TLS طراحی شده است . این ابزار نقش مهمی در ایمنسازی ارتباط بین سرور و کلاینت و محافظت از دادهها در برابر دسترسی غیرمجاز ایفا میکند. Certbot فرآیند نصب و تمدید گواهینامه SSL را ساده میکند. این گواهینامه نه تنها امنیت را افزایش میدهد، بلکه اعتماد کاربران به منابع وب شما را نیز افزایش میدهد و در نتیجه اعتبار سایت و رتبهبندی آن در موتورهای جستجو را بهبود میبخشد.
نصب Certbot
Certbot به طور پیشفرض در اکثر توزیعها گنجانده شده است، بنابراین برای نصب آن در سیستمهای Debian/Ubuntu ، فقط باید لیست بستهها را بهروزرسانی کنید:
apt update
سپس، فرآیند نصب را آغاز کنید:
apt install certbot
Certbot از افزونه هایی پشتیبانی می کند که راه اندازی و پیکربندی گواهی را برای یک وب سرور تسهیل می کند. برای نصب این افزونه ها از دستور مربوطه استفاده کنید:
apt install certbot python3-certbot-nginx # for Nginx
apt install certbot python3-certbot-apache # for Apache
مراحل نصب برای سیستمهای Red Hat (مانند RHEL ، CentOS ، Fedora ) کمی متفاوت است. در ابتدا، باید مخزن EPEL را اضافه کنید:
yum install epel-release
سپس ابزار را نصب کنید:
yum install certbot
به طور مشابه، گزینه ای برای انتخاب یک افزونه برای یک وب سرور خاص وجود دارد:
yum install python3-certbot-nginx # for Nginx
yum install python3-certbot-apache # for Apache
پس از نصب، می توانید بلافاصله نسبت به دریافت گواهی اقدام کنید.
دریافت گواهی SSL
در این بخش، فرآیند دریافت گواهی مستقل از یک وب سرور خاص را مورد بحث قرار می دهیم و سپس مراحل نصب گواهی را برای Nginx و Apache شرح می دهیم. با این حال، ابتدا ضروری است که نحو و عملکرد برنامه را درک کنید. به صورت زیر ظاهر می شود:
certbot command option -d domain
دستورات اصلی عبارتند از:
certbot certonly - گواهی را بازیابی می کند اما آن را نصب نمی کند.certbot certificates - این دستور لیستی از تمام گواهی های نصب شده را نمایش می دهد.certbot renew - گواهی موجود را تمدید می کند.certbot revoke - گواهی موجود را باطل می کند.certbot delete - گواهی موجود را حذف می کند.
رایج ترین گزینه های مورد استفاده عبارتند از:
--nginx - از اسکریپت های پیکربندی Nginx برای تأیید دامنه استفاده می کند.--apache - از اسکریپت های پیکربندی آپاچی برای تأیید دامنه استفاده می کند.-d - لیست دامنه هایی که گواهی برای آنها درخواست شده است.--standalone - از حالت مستقل برای تأیید دامنه استفاده می کند.--manual - تایید دستی دامنه را انجام می دهد.
این فقط نمونه ای از متداول ترین دستورات و گزینه هاست. شما می توانید با لیست کامل قابلیت های برنامه در بخش راهنما آشنا شوید:
certbot –help
اکنون به سراغ دریافت گواهینامه میرویم. به عنوان مثال، ما یک گواهینامه برای یک سرور مجازی برای یک دامنه سطح سوم رایگان مانند yourusername.pserver.space دریافت خواهیم کرد.
ابتدا باید دستور را وارد کنید:
certbot certonly
در پاسخ، ابزار از شما می خواهد که روشی را برای تأیید مالکیت دامنه انتخاب کنید:
اگر یک وب سرور پیکربندی شده ندارید یا نمی خواهید در یک موجود تغییر ایجاد کنید، گزینه اول راحت است. این روش یک وب سرور موقت ایجاد می کند تا حق شما بر دامنه را تأیید کند. برای راه اندازی ساده و سریع ایده آل است. هنگام انتخاب این روش، مهم است که پورت 80 را آزاد نگه دارید.
اگر از قبل یک وب سرور دارید و می خواهید از آن برای تأیید حق دامنه استفاده کنید، گزینه دوم ترجیح داده می شود. Certbot فایل های خاصی را در پوشه ای روی سرور شما قرار می دهد که سپس توسط مرکز صدور گواهی بررسی می شود.
اولین گزینه را انتخاب کرده و روی next کلیک می کنیم. در این مرحله، شما باید:
- آدرس ایمیل را وارد کنید؛
- موافقت با شرایط خدمات؛
- موافقت یا امتناع از دریافت ایمیل از طرف شرکت و شرکای آن؛
- نام دامنه ای که گواهی برای آن صادر شده است را مشخص کنید.
پس از تکمیل فرآیند صدور گواهی با ابزار Certbot، مسیر دایرکتوری را نشان می دهد که گواهی صادر شده و داده های حساب شما در آن ذخیره می شود:
تنها چیزی که باقی می ماند این است که گواهی به دست آمده را به سرویس مورد نیاز پیوند دهید.
نصب گواهی برای Nginx یا Apache
این بخش فرض می کند که برخی از شرایط اساسی برآورده شده است:
- شما قبلاً یک وب سرور، Nginx یا Apache را نصب و پیکربندی کرده اید. باید از طریق اینترنت از طریق نام دامنه ای که قصد دریافت گواهینامه را دارید، قابل دسترسی باشد.
- در حین نصب ابزار، با استفاده از دستور مناسب، افزونه ای برای Nginx یا Apache نیز نصب کردید.
- فایروال امکان اتصال در پورت های 80 و 443 را فراهم می کند. اگر این پورت ها برای اتصالات بسته باشند، سرویس برای اتصالات ورودی در دسترس نخواهد بود. برای جزئیات بیشتر در مورد عملکرد فایروال، در این مقاله در مورد آن بحث کردیم راه اندازی فایروال در لینوکس.
پس از برآورده شدن همه شرایط، می توانید مستقیماً به صدور گواهینامه اقدام کنید. ما فرآیند دریافت گواهی SSL در سرور با استفاده از Nginx را به عنوان مثال در نظر خواهیم گرفت. با این حال، اگر از وب سرور آپاچی استفاده می کنید، فرآیند کاملاً یکسان است.
برای دریافت گواهی باید دستور زیر را وارد کنید:
certbot --nginx # for Nginx
certbot --apache # for Apache
در پاسخ، ابزار درخواست خواهد کرد: یک آدرس ایمیل، رضایت با شرایط استفاده از سرویس Let's Encrypt، و اجازه ارسال ایمیل از طرف سرویس و شرکای آن.
پس از آن، باید نام دامنهای را که گواهی برای آن صادر شده است، مشخص کنید. اگر دامنه در فیلد server_name برای پیکربندی Nginx یا ServerName و ServerAlias برای Apache مشخص شده باشد، Certbot میتواند به طور خودکار آن را تعیین کند . اگر مشخص نشده باشد، برنامه به شما اطلاع میدهد و از شما میخواهد که نام دامنه را به صورت دستی وارد کنید. سپس، این ابزار از شما میپرسد که آیا میخواهید تغییر مسیر درخواستها از پروتکل HTTP به HTTPS فعال شود یا خیر. برای تنظیم تغییر مسیر خودکار، باید گزینه دوم را انتخاب کنید:
پس از مدتی Certbot شما را از کسب موفقیت آمیز گواهی برای دامنه مشخص شده مطلع می کند. از این نقطه به بعد، تمام اتصالات ورودی از پورت 80 به 443 هدایت می شوند. این ابزار دایرکتوری هایی را نشان می دهد که در آنها می توانید تمام داده های گواهی و جزئیات حساب Let's Encrypt را پیدا کنید:
این پیام همچنین مدت اعتبار گواهی به دست آمده و گزینه های مهم برای مدیریت تمام گواهی های فعال را مشخص می کند:
- قطعا. این گزینه برای دریافت یا به روز رسانی گواهی بدون پیکربندی وب سرور خودکار استفاده می شود. Certbot فقط گواهی را درخواست یا به روز می کند اما هیچ تغییر خودکاری در پیکربندی سرور ایجاد نمی کند. قبلاً از این گزینه برای دریافت گواهی بدون اتصال به وب سرور استفاده می کردیم.
- تجدید کردن برای تمدید خودکار کلیه گواهی هایی که از طریق Certbot به دست آمده اند و در مدت اعتبار آنها هستند استفاده می شود. این برنامه همه گواهینامه ها را بررسی می کند و اگر هر یک از آنها ظرف 30 روز یا کمتر منقضی شود، به طور خودکار تمدید می شود.
در ادامه در دستورالعمل، نحوه راه اندازی تمدید خودکار گواهینامه ها بدون دخالت کاربر هر سه ماه یکبار بحث خواهیم کرد.
تمدید خودکار گواهی در Certbot
برای دبیان/اوبونتو
هنگام استفاده از این سیستم عامل ها، Certbot به طور خودکار یک اسکریپت را برای تمدید خودکار گواهی های نصب شده به لیست وظایف اضافه می کند. با دستور زیر می توانید عملکرد اسکریپت را بررسی کنید:
systemctl status certbot.timer
پاسخ، وضعیت سرویس و همچنین دایرکتوری حاوی فایل پیکربندی را نمایش میدهد. میتوانید این فایل را با استفاده از هر ویرایشگر متنی باز کنید. اگر با ویرایشگرهای متنی در لینوکس تجربه ندارید، توصیه میکنیم با مرور کلی ما در مورد محبوبترین راهحلها آشنا شوید. در این مورد، ما از nano استفاده خواهیم کرد:
nano /lib/systemd/system/certbot.timer
تمام پارامترهای مهم برجسته شده اند:
- برنامه نشان می دهد که این سرویس دو بار در روز در ساعت 00:00 و 12:00 اجرا می شود.
- مقدار دوم نشان دهنده تاخیر تصادفی در چند ثانیه است که به شروع تایمر اضافه می شود. در این حالت 43,200 ثانیه (12 ساعت) است که پرتاب را تصادفی تر می کند و بار را پخش می کند.
- این پارامتر تضمین می کند که اگر قرار بود تایمر در حین خاموش شدن سیستم اجرا شود، بلافاصله پس از راه اندازی فعال می شود.
همچنین می توانید یک بررسی اجباری تمدید گواهی را با دستور زیر اجرا کنید:
certbot renew --dry-run
با استفاده از این دستور، گواهی ها به روز نمی شوند. درعوض، این ابزار پس از انقضای آن، اقداماتی شبیه به دریافت گواهی انجام می دهد. به این ترتیب، می توانید از عملکرد سرویس در مورد تمدید خودکار اطمینان حاصل کنید.
برای CentOS، Fedora و دیگران
فرآیند فعالسازی بهروزرسانیهای خودکار در سیستمهای خانواده Red Hat کمی متفاوت است. برخلاف Debian/Ubuntu، برای CentOS و سایر سیستمها، باید یک وظیفه را به صورت دستی به زمانبندی اضافه کنید. برای این کار، از ابزار cron استفاده خواهیم کرد :
crontab -e
سپس در فایلی که باز می شود خط زیر را اضافه کنید:
0 12 * * * /usr/bin/certbot renew --quiet
بیایید آرگومان های اصلی دستور را بشکنیم:
- زمان اجرا در این حالت، دستور به طور خودکار در ساعت 12:00 هر روز اجرا می شود.
- فرمان تمدید گواهینامه های SSL/TLS با استفاده از Certbot؛
- La --ساکت پرچم خروجی را سرکوب میکند و فرآیند را مخفیتر میکند و در گزارشها یا نمایش سیستم کمتر مداخله میکند.
پس از افزودن دستور، باید تغییرات را در فایل ذخیره کنید.
درست مانند دبیان/اوبونتو، میتوانید یک بررسی اجباری از تمدید گواهی را نیز آغاز کنید:
certbot renew --dry-run
نتیجه اجرای موفقیت آمیز دستور به صورت زیر است:
نتیجه
ما روند جامع نصب و پیکربندی Certbot در سرور لینوکس را بررسی کرده ایم. با پیروی از دستورالعملهای ارائه شده، میتوانید با موفقیت گواهی SSL/TLS را از Let's Encrypt دریافت کنید، آن را روی سرور وب خود نصب کنید و تمدید خودکار را پیکربندی کنید تا از محافظت مداوم و افزایش اعتماد به منبع وب خود اطمینان حاصل کنید. با Certbot به راحتی می توانید یک محیط مطمئن و امن برای کاربران ایجاد کنید.