ایمن سازی Nginx در CentOS7
گوگل مدتی است که شرکتها و وبسایتها را به استفاده از گواهینامه SSL مجبور کرده است. بیش از ۴۶میلیون وبسایت در سراسر دنیا برای اینکه رتبهشان در صفحه نتایج گوگل افت نکند، با این تصمیم موافقت کردهاند. این گواهی تراکنشها و اطلاعات حساس کاربر را ایمن نگه میدارد و به امنیت بیشتر فضای وب و اعتمادسازی بیشتر موتور جستوجوی گوگل کمک میکند.
Let’s Encrypt مرجع جدیدی (CA) برای صدور گواهینامههای رایگان TLS و SSL است که HTTPS رمزنگاریشده را روی سرورهای وب فعال میکند. Let’s Encrypt فرایند صدور گواهی را با فراهمکردن کلاینتی نرمافزاری به نام Certbot آنقدر هموار میکند که اغلب مراحل ضروری بهطورخودکار انجام میشود. درحالحاضر، تمام فرایند دریافت و نصب گواهینامههای SSL روی وبسرورهای Apache و Nginx کاملاً خودکار شده است. در این مطلب، به شما آموزش خواهیم داد که چگونه از کلاینت Certbot برای دریافت گواهی SSL رایگان و اتصال آن به Nginx در CentOS 7 بهره ببرید و آن را بهطورخودکار تمدید کنید. اگر میخواهید امنیت Nginx را با نصب SSL روی CentOS 7 بالا ببرید، این مطلب میتواند راهنمای خوبی در این زمینه برای شما باشد.
پیشنیازها
قبل از اینکه فرایند کار را آغاز کنیم، به چند چیز نیاز داریم:
- سرور CentOS 7 با کاربر غیرروت که امتیازهای sudo را داشته باشد.
- برای تهیه گواهی SSL، باید مالک دامنه ثبتشده باشید یا آن را مدیریت کنید. اگر هنوز دامنهای ثبت نکردهاید، میتوانید دامنهتان را با پسوند دلخواه از پارس پک سفارش دهید.
- رکورد A در DNS دامنه شما را به آدرس آیپی عمومی روی سرورتان متصل میکند. چرا به این کار نیاز است؛ چون Let’s Encrypt از این طریق مالکیت دامنهای را تأیید میکند که قرار است برایش گواهی صادر شود. برای مثال، اگر بخواهید گواهینامه SSL برای دامنه example.com بگیرید، باید آن را به سرورتان متصل کنید تا فرایند اعتبارسنجی انجام شود. در تنظیمات ما از دو دامنه example.com و www.example.com استفاده میکنیم؛ پس دو رکورد DNS لازم است.
هر زمان که تمام نیازمندیهای یادشده را فراهم کردید، بهسراغ نصب نرمافزار کلاینت مخصوص Let’s Encrypt میرویم.
قدم اول: نصبکردن کلاینت Let’s Encrypt به نام Certbot
برای استفاده از Let’s Encrypt بهمنظور دریافت گواهینامه SSL، باید اولین قدم، یعنی نصب کلاینت نرمافزاری Certbot روی سرورتان را بردارید. درحالحاضر، بهترین روش برای نصب آن ازطریق مخزن EPEL است.
دسترسی به مخزن EPEL روی سرور را با نوشتن دستور زیر فعال کنید:
sudo yum install epel-release
زمانیکه مخزن EPEL فعال شد، با استفاده از دستور زیر میتوانید بسته certbot-nginx را دریافت کنید:
sudo yum install certbot-nginx
حالا کلاینت Certbot نصب شده و آماده استفاده است.
قدم دوم: تنظیم Nginx
اگر هنوز Nginx را نصب نکردهاید، باهم انجامش میدهیم. ازآنجاکه مخزن EPEL در مرحله قبل فعال شده است، میتوانید Nginx را با دستور زیر نصب کنید:
sudo yum install nginx
سپس، با استفاده از systemctl وبسرور Nginx را راه بیندازید:
قدم سوم: بهروزرسانی فایروال
اگر فایروال سرور را فعال کردهاید، مطمئن شوید که پورتهای ۸۰ و ۴۳۳ برای ترافیک ورودی باز باشند. اگر فایروال روی سرور اجرا نمیشود، از این مرحله بگذرید.
اگر دیوار آتش Firewall را اجرا میکنید، دستور زیر را برای بازکردن پورتها بنویسید:
قدم چهارم: دریافت گواهینامه
Certbot راههای زیادی را برای نصب گواهینامه SSL ازطریق افزونههای مختلف پیش روی شما میگذارد. افزونه Nginx مسئول پیکربندی Nginx و بارگذاری دوباره آن در مواقع لزوم است:
sudo certbot –nginx -d example.com -d www.example.com
دستور بالا، Certbot را با افزونه –nginx اجرا و از –d برای مشخصکردن وبسایتهای ما بهمنظور دریافت گواهی معتبر استفاده میکند. اگر نخستینبار است که Certbot را راهاندازی میکنید، از شما خواسته میشود تا ایمیلتان را وارد و با قوانین استفاده از خدمات موافقت کنید. پس از انجام این کار، Certbot با سرور Let’s Encrypt مرتبط میشود و اقداماتی را برای اطمینان از کنترل شما روی دامنه درخواستکننده گواهینامه انجام میدهد.
درادامه، پیکربندی بهروز و Nginx برای استفاده از تنظیمات جدید دوباره بارگذاری میشود. Certbot کار خود را با پیامی بهاتمام میرساند که میگوید فرایند موفقیتآمیز بوده است و محل ذخیرهسازی گواهیهای شما را اطلاع میدهد:
قدم پنجم: تنظیم تمدید خودکار
گواهینامههای Let’s Encrypt تنها برای ۹۰ روز معتبرند. این مدتزمان برای تشویق کاربران به خودکارسازی فرایند تمدید گواهینامه است. برای بررسی انقضای گواهینامه و تمدید خودکار آن، باید دستور اجرایی منظمی را تنظیم کنید. ما از cron که سرویس سیستمی استاندارد مخصوص کارهای دورهای است، برای بررسی روزانه تمدید گواهینامه استفاده میکنیم. بهمنظور دستوردادن به cron، باید فایلی به نام crontab را باز و ویرایش کنید:
sudo crontab –e
ویرایشگر متنی شما فایل پیشفرض crontab را باز میکند که در این لحظه خالی است. خط زیر را وارد فایل کنید و ذخیره را بزنید و آن را ببندید:
۳۱۵ * * * /usr/bin/certbot renew –quiet
بخش ۱۵ ۳ * * * از این خط باعث اجرای دستور در ساعت ۱۵:۳ هرروز میشود؛ البته شما میتوانید هر ساعتی را انتخاب کنید.
دستور renew دادهشده به certbot، تمام گواهیهای نصبشده روی سیستم را بررسی و گواهینامههای دارای تاریخ انقضای کمتر از ۳۰ روز را بهروزرسانی میکند. –quiet نیز به Certbot میگوید از هیچ اطلاعاتی خروجی نگیرد یا منتظر ورودی کاربر نماند.
حالا cron این دستور را هرروز اجرا میکند. زمانیکه ۳۰ روز یا کمتر به تاریخ انقضای هریک از گواهینامهها مانده باشد، آن گواهی تمدید و دوباره بارگذاری میشود.
نتیجه گیری
در این مطلب از آموزش سنت او اس، کلاینت Certbot را روی Let’s Encrypt نصب، گواهینامههای SSL را برای دامنه دانلود، Nginx را برای استفاده از گواهینامهها پیکربندی و تمدید خودکار گواهینامهها را تنظیم کردیم. اگر هنگام انجام فرایند نصب SSL روی CentOS 7 با سؤال یا ابهامی مواجه شدید، می توانید ازطریق کامنت های این پست و یا از طریق صفحات اجتماعی ما در فضای مجازی با ما در میان بگذارید.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.