شما برای مطالعه این مقاله فقط 4 دقیقه وقت نیاز دارید

secure-nginx-in-centos-with-ssl

آموزش ایمن کردن Nginx با استفاده از SSL در CentOS

5/5 - (7 امتیاز)

یکی از راه‌های اعتباربخشی به وبسایتمان از نظر گوگل، داشتن گواهینامه SSL است. شرکت‌هایی هستند که گواهینامه SSL را به دو صورت رایگان و پولی عرضه می‌کنند که یکی از محبوب‌ترین و معتبرترین آن‌ها، یعنی “Let’s Encrypt” این سرویس را کاملا رایگان در اختیار صاحبین وبسایت‌ها می‌گذارد تا میزان امنیت در سطح اینترنت افزایش یابد.

گواهینامه SSL گواهینامه‌ای برای امنیت و اعتباربخشی به وبسایت‌ ها است که توسط شرکت Let's Encrypt متعلق به گروه تحقیقاتی امنیت اینترنت (ISRG) به وبسایت‌ها اختصاص داده می‌شود تا از اطلاعات رد و بدل شده بین کاربر و سرور محافظت شود. گوگل به وبسایت‌هایی که این گواهینامه را دارند، اعتبار و رتبه بالاتری نسبت به بقیه سایت‌ها می‌دهد. این گواهینامه می‌تواند رایگان و پولی باشد که اخذ و تمدید گواهی شرکت Let's Encrypt رایگان بوده و مدت اعتبار آن 3 ماه است. از طریق کلاینت certbot با چند خط کد می‌توانید این گواهی را بصورت اتوماتیک نصب و دریافت کنید.

البته این گواهینامه فقط به منظور اعتباربخشی نیست و با استقرار گواهی SSL بر روی سرور شما، اطلاعات رد و بدل شده بین کاربر و سرور برای دیگر افراد غیر قابل دسترسی خواهد بود.

در حال حاضر می‌توان Let’s Encrypt را تقریبا بر روی تمامی وب‌ سرویس‌ها اعم از Apache, NGINX, NGINX Plus و OpenLiteSpeed نصب و از آن برای ایمن کردن Nginx استفاده کرد.

تمامی مرورگرهای محبوب و رسمی از قبیل Safari, Mozilla, Chrome از آن بعنوان شرکت ارائه دهنده  گواهینامه SSL مورد اعتماد یاد کرده و آن را به رسمیت می‌شناسند.

Let’s Encrypt از طریق کلاینت certbot اقدام به انجام تمامی کارهای لازم برای دریافت گواهی SSL بصورت کاملا اتوماتیک می‌کند.

این امر یکی از جنبه‌های مثبت certbot است که کاربر را از کسب دانش برنامه نویسی بی‌نیاز می‌کند. این گواهی به مدت 3 ماه اعتبار دارد و به شما آموزش خواهیم داد که چگونه بصورت دوره‌ای و رایگان آن را تمدید کنید.

همان طور که در آموزش‌های قبلی به موضوع ایمن کردن nginx در دبیان پرداختیم، در این مقاله نیز به بررسی نحوه ایمن کردن Nginx با استفاده از SSL در CentOS خواهیم پرداخت و با پیروی از این راهنمای آسان و خلاصه این گواهی را به سادگی می‌توانید دریافت  کنید.

مراحل ایمن کردن Nginx در CentOS از طریق SSL

تقریبا تمامی توضیحات کلی مورد نیاز در قسمت قبلی مقاله ذکر شد. با استفاده از دستورات زیر می‌توانید نسبت به دریافت گواهی SSL وبسایت خود از شرکت Let’s Encrypt از طریق کلاینت certbot و اجرای دستور تمدید خودکار بصورت رایگان اقدام کنید.

1. پیش نیازهای امن کردن nginx با استفاده از certbot

تمامی پیش نیازها برای انجام کار به ۳ عامل محدود می‌شود:

  • پکیج Extra Packages for Enterprise Linux یا همان (EPEL)
  • یوزر root یا یوزری که امتیازات sudo دارد
  • سرور مجازی لینوکس که در بستر CentOS فعال است

مبنای ما در این آموزش، انجام تمامی دستورات از طریق کاربر root است. کارمان را با نصب پکیج EPEL از راه اجرای دستور زیر شروع می کنیم:

yum install epel-release

سپس با دستور زیر پکیج‌های موجود در سیستم را آپدیت می‌کنیم تا یک پکیج لیست جدید را به package manager اضافه کنیم:

yum update

2. نصب و راه‌ اندازی Nginx

برای نصب nginx از دستور زیر استفاده کنید و اگر قبلا آن را نصب کرده‌اید، مستقیما به گام سوم مراجعه کنید.

yum install nginx
service nginx start

3. نصب کلاینت certbot

با اجرای دستوری که در ادامه به آن اشاره شده می‌توانیم certbot را نصب کنیم :

yum install certbot-nginx

با اجرای دستور بعدی یک گواهینامه SSL متعلق به Let’s Encrypt  را با استفاده از پلاگین Nginx بر روی سرور نصب خواهیم کرد. با اجرای این دستور، Certbot بصورت اتوماتیک پیکربندی Nginx را با اضافه کردن خطوط مربوطه اصلاح می‌کند.

این خطوط حاوی مسیرهای گواهینامه و کلید عمومی (private key) تولید شده توسط خود Certbot هستند و این اصلاح قبل از reload یا بارگزاری مجدد Nginx  انجام می‌شود. دستور ذکر شده به شرح زیر است:

certbot --nginx

سپس راهنمایی که Certbot نمایش می‌دهد را بخوانید، دستورالعمل را اجرا و ایمیل خود را وارد کنید و به همین سادگی گواهی SSL بر روی سرور شما نصب خواهد شد.

کلیک کنید  ۱۰ تا از بهترین ابزارهای مانیتورینگ ترافیک در سرور لینوکس

4. تمدید خودکار تجدید گواهی

همانطور که پیش‌تر اشاره شد، گواهی SSL کسب شده از جنب شرکت Let’s Encrypt فقط به مدت 90 روز اعتبار دارد. اما نگران نباشید. می‌توانیم این گواهی را هروقت که خواستیم تمدید کنیم و خبر خوشتر این که تمدید آن نیز رایگان است.

با استفاده از یک کرون جاب (cronjob) می‌توانیم پروسه تمدید را به حالت خودکار درآوریم تا کرون جاب بصورت دوره‌ای، وضعیت گواهی و مدت زمان باقیمانده را چک و در صورت نیاز نسبت به تمدید آن اقدام کند.

با استفاده از دستور زیر در command line، فایل crontab را باز کنید:

crontab -e

با اجرای این دستور یک ویرایشگر متن، باز می‌شود  که بایستی دستور زیر را در آن وارد کنید:

0 2 * * * /usr/bin/certbot renew --quiet

این دستور، باعث می‌شود تا دستور certbot هر روز راس ساعت 2 شب اجرا شود. می‌توانید زمان آن را که بر پایه یک روز 24 ساعته است، به هر زمانی که دوست دارید ست کنید.

5 فیلد آن بصورت دو رقم در سمت چپ که نشانگر ساعتند، کارکتر دو نقطه ( : ) در وسط و دو رقم مربوط به دقیقه در سمت راست، است. مثلا ( 10:18 ) که ساعت 10 و 18 دقیقه صبح را نشان می‌دهد.

آپشن (quiet–) نیز به certbot دستور می‌دهد تا هیچ خروجی‌ ای تولید نکند و به نوعی در سکوت این فرایند را هر روز انجام دهد. تغییرات را در ویرایشگر ذخیره (Save) کنید و از آن خارج شوید.

حالا شما گواهینامه SSL وبسایت خود را بصورت کاملا رایگان فعال کرده‌اید و به certbot دستور داده‌اید تا هر روزه اعتبار آن را چک و در صورت نیاز تمدید کند.

همچنین جهت اطمینان و مشاهده اطلاعات گواهینامه SSL وبسایت خود، به وبسایتتان مراجعه کنید. نکته اول این که قبل از آدرس دامنه خود عبارت //:HTTPS و علامت قفل را خواهید دید.

برای دیدن اطلاعات بیشتر از گواهی وبسایت خود در محیط  فایرفاکس روی علامت قفل، سپس عبارت ” Connection Secure ” و بعد ” More Information ” و نهایتا ” View Certificate ” کلیک کنید. در پنجره بازشده قادر به بررسی اطلاعات گواهی SSL سرور خود هستید.

5. اصلاح تنظیمات فایروال (اختیاری)

فایروال پیشفرض در firewalld ،CentOS نام دارد. می‌توانید این فایروال را بطور کامل غیرفعال کنید تا مطمئن باشید که تمامی ارتباطات ورودی و خروجی سرور شما بلاک نخواهند شد. اما اگر مایل هستید تا از فایروال در سیستم خود استفاده کنید، لازم است firewalld را به طریقی اصلاح کنید تا به ارتباطات HTTPS اجازه دسترسی به سرورتان را بدهد.

دستور زیر به هر دو نوع ارتباط HTTPS و HTTP این اجازه را خواهد داد:

firewall-cmd --permanent --add-service=http --add-service=https

با دستور زیر فایروال را reload کنید تا تغییرات اعمال شوند:

firewall-cmd --reload

حالا فایروال شما فعال است و به هر دو نوع ارتباط HTTPS و HTTP اجازه دسترسی به سرور را می‌دهد. در اینجا لازم است به شما تبریک بگوییم که در عرض چند دقیقه توانستید با استفاده از SSL در Nginx ،CentOS را ایمن‌ کنید.

سخن آخر

با خواندن این مقاله توانستید بصورت رایگان یک گواهینامه معتبر SSL برای وب سرور Nginx خود بر روی CentOS ایجاد کنید و حتی دستوری برای تمدید آن بنویسید که شما را از تمدید دستی گواهینامه بی‌نیاز می‌کند.

بدون شک استفاده از گواهی SSL و نمایش علامت قفل در ابتدای آدرس دامنه، اعتماد مخاطبین و مشتریان را نسبت به فعالیت وبسایت شما جلب خواهد کرد.

در صورت وقوع هرگونه خطا و یا داشتن هر سوالی می‌توانید در قسمت کامنت‌ها و یا ارتباط مستقیم با تیم پشتیبانی موضوع را با ما مطرح کنید تا باهم آن را رفع کنیم.

مطالب مشابهی که شاید علاقمند باشید

نویسندگی یک نیروی عجیبی توی خودش داره و همین نیرو بود که من رو از زمان خوندن اولین شاهکار ادبیاتیم جذب خودش کرد. از میون صفحات کتابا میتونی زندگی‌های بیشماری رو تجربه کنی. اینطوری بود که خوشم اومد منم دست به قلم بشم و بتونم بقیه رو به سرزمین‌های خیالیم ببرم. و این داستان ادامه پیدا کرد تا امروز که بعنوان یک تولیدکننده تمام وقت محتوا فعالیت میکنم و مینویسم تا این نیرو رو تو خودم پیدا کنم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید