نویسنده: fema co
23 ژوئن 2020
0 248
نحوه رمزگذاری Nginx در اوبونتو

نحوه رمزگذاری Nginx در اوبونتو

نحوه رمزگذاری Nginx در اوبونتو را مشاهده میکنید از وبلاگ فاما سرور,در این آموزش قصد داریم تا نحوه رمزنگاری وب سرور Nginx را مرور کنیم و برای نصب Nginx میتوانید آموزش نصب Nginx در اوبونتو را مشاهده کنید.

مقدمه

 

Let’s Encrypt یک مجوز مجوز (CA) است که روشی آسان برای به دست آوردن و نصب مجوزهای رایگان TLS / SSL فراهم می کند و بدین ترتیب HTTPS رمزگذاری شده را روی سرورهای وب امکان می دهد. این فرایند را با ارائه یک مشتری نرم افزاری ، Certbot ، که سعی در خودکارسازی بیشتر (اگر نه همه) مراحل لازم انجام شود ، ساده می کند. در حال حاضر ، کل مراحل اخذ و نصب گواهینامه به طور کامل در هر دو آپاچی و Nginx انجام می شود.

در این آموزش از Certbot برای به دست آوردن گواهینامه رایگان SSL برای Nginx در اوبونتو ۲۰٫۰۴ استفاده می کنید و گواهی خود را برای تجدید خودکار تنظیم می کنید.

در این آموزش به جای فایل پیش فرض از یک فایل پیکربندی سرور Nginx جداگانه استفاده می شود. ما توصیه می کنیم برای هر دامنه فایلهای بلوک جدید سرور Nginx ایجاد کنید زیرا این امر به جلوگیری از اشتباهات رایج کمک می کند و فایل های پیش فرض را به عنوان پیکربندی برگشتی حفظ می کند.
پیش نیازها

برای دنبال کردن این آموزش ، شما نیاز دارید:

سرور مجازی یا سرور اختصاصی با سیستم عامل Ubuntu 20.04

نام دامنه ثبت شده در این آموزش از xample.com است که در  سراسر مقاله استفاده می شود. هر دو پرونده DNS زیر برای سرور شما تنظیم شده اند.
دقت داشته باشید که دامنه ما باید ۲ a record را به آدرس آیپی اصلی سرور با نام های xample.com و www.xample.com رو برگرداند.
Nginx با دنبال کردن نحوه آموزش نصب Ngnix در اوبونتو  نصب شده است. مطمئن باشید که یک بلوک سرور برای دامنه خود دارید. در این آموزش از /etc/nginx/sites-available/example.com به عنوان نمونه استفاده می شود.

نصب Certbot

 

اولین قدم برای استفاده از Letry Encrypt برای به دست آوردن گواهی SSL ، نصب نرم افزار Certbot در سرور شماست.

Certbot را نصب کنید و افزونه Nginx با کاربرد مناسب است:

sudo apt install certbot python3-certbot-nginx

 

Certbot اکنون آماده استفاده است ، اما برای آنکه بتواند SSL را برای Nginx به صورت خودکار پیکربندی کند ، باید برخی از پیکربندی های Nginx را تأیید کنیم.

 

پیکربندی Nginx

 

Certbot باید بتواند بلوک صحیح سرور را در تنظیمات Nginx شما پیدا کند تا بتواند SSL را بطور خودکار پیکربندی کند. به طور خاص ، این کار را با جستجوی یک دستورالعمل server_name متناسب با دامنه مورد نظر برای دریافت گواهینامه انجام می دهد.

اگر مرحله نصب بلوک سرور را در آموزش نصب Nginx دنبال کردید ، باید یک بلوک سرور برای دامنه خود در /etc/nginx/sites-available/example.com با دستور server_name که قبلاً به طور مناسب تنظیم شده است ، داشته باشید.

برای بررسی ، پرونده پیکربندی دامنه خود را با استفاده از نانو یا ویرایشگر متن مورد علاقه خود باز کنید:

 

sudo nano /etc/nginx/sites-available/example.com

 

خط server_name موجود را پیدا کنید. می بایست شبیه به این باشه:

...
server_name example.com www.example.com;
...

 

اگر این کار را انجام داد ، از ویرایشگر خود خارج شوید و به مرحله بعدی بروید.

اگر اینطور نیست ، آن را به روز کنید تا مطابقت داشته باشد. سپس پرونده را ذخیره کنید ، از ویرایشگر خود خارج شوید و نحو ویرایش های پیکربندی خود را تأیید کنید:

sudo nginx -t

 

اگر خطایی رخ داد ، فایل بلوک سرور را مجدداً باز کنید و هرگونه علامت ضعف یا شخصیت گمشده را بررسی کنید. پس از اینکه نحو فایل پیکربندی شما صحیح است ، Nginx را بارگیری کنید تا پیکربندی جدید بارگیری شود:

sudo systemctl reload nginx

 

Certbot اکنون می توانید بلاک صحیح سرور را پیدا کرده و به طور خودکار آن را به روز کنید.

در مرحله بعد ، اجازه دهید تا ترافیک HTTPS فایروال را به روز کنیم.

 

اجازه دادن به HTTPS از طریق فایروال

 

اگر فایروال ufw را فعال کنید ، همانطور که توسط راهنماهای پیش نیاز توصیه شده است ، برای تنظیم ترافیک HTTPS ، باید تنظیمات را تنظیم کنید. خوشبختانه ، Nginx پس از نصب چند نمایه را با ufw ثبت می کند.

با تایپ می توانید تنظیم فعلی را مشاهده کنید:

sudo ufw status

 

این احتمالاً مانند این خواهد بود ، به این معنی که فقط ترافیک HTTP به سرور وب مجاز است:

خروجی

Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)

 

برای اینکه علاوه بر این در ترافیک HTTPS اجازه دهید ، به پروفایل Nginx Full اجازه دهید و هزینه اضافی پروفایل Nginx HTTP را حذف کنید:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

 

وضعیت شما اکنون باید به این شکل باشد:

sudo ufw status

 

خروجی

Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)

 

بعد ، بیایید Certbot را اجرا کنیم و گواهینامه هایمان را واکشی کنیم.

 

اخذ گواهینامه SSL

نحوه رمزگذاری Nginx در اوبونتو

نحوه رمزگذاری Nginx در اوبونتو

Certbot روشهای مختلفی برای به دست آوردن گواهینامه های SSL از طریق افزونه ها ارائه می دهد. افزونه Nginx برای تنظیم مجدد Nginx و بارگیری مجدد پیکربندی در صورت لزوم ، مراقبت خواهد کرد. برای استفاده از این افزونه ، موارد زیر را تایپ کنید:

sudo certbot --nginx -d example.com -d www.example.com

 

این کار با افزونه --nginx با استفاده از -d برای مشخص کردن نام دامنه ای که می خواهیم برای آن معتبر باشد معتبر است.

اگر این نخستین بار است که در حال اجرا کردن certbotهستید ، از شما خواسته می شود که آدرس ایمیل را وارد کنید و با شرایط خدمات موافقت کنید. بعد از انجام این کار ، certbotبا سرور Letry Encrypt ارتباط برقرار می کند ، سپس برای تأیید اینکه دامنه مورد نظر خود را کنترل می کنید ، یک چالش را اجرا کنید.

اگر این موفقیت آمیز باشد ، certbotاز شما می خواهد که چگونه می خواهید تنظیمات HTTPS خود را پیکربندی کنید.

خروجی

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
۱: No redirect - Make no further changes to the webserver configuration.
۲: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

 

ترجمه گزینه های بالا:

۱: بدون تغییر مسیر – هیچ تغییری در پیکربندی وب سرور ایجاد نکنید.
۲: تغییر مسیر – برای اطمینان از دسترسی HTTPS ، کلیه درخواستها را تغییر مسیر دهید. این را انتخاب کنید

 

انتخاب خود را انتخاب کرده و وارد ENTERشوید. پیکربندی به روز خواهد شد ، و Nginx بارگیری می کند تا تنظیمات جدید را انتخاب کند. certbot با پیغامی همراه خواهد شد که به شما می گوید روند موفقیت آمیز بود و گواهی نامه های شما در کجا ذخیره شده است:

خروجی

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2020-08-18. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

 

گواهینامه های شما بارگیری ، نصب و بارگیری می شوند. سعی کنید وب سایت خود را با استفاده از https: // بارگیری مجدد کنید و به نشانگر امنیتی مرورگر خود توجه کنید. باید نشان دهد که سایت به طور صحیح ایمن است ، معمولاً با نماد قفل. اگر سرور خود را با استفاده از SSL Labs Server Test تست كنید ، درجه A می گیرد.

بیایید با آزمایش روند تجدید به پایان برسیم.

 

تأیید تمدید خودکار Certbot

 

اجازه دهید گواهینامه های رمزگذاری شده فقط برای نود روز اعتبار داشته باشند. این امر برای ترغیب کاربران به اتوماسیون فرایند تجدید گواهینامه است. بسته certbot ما نصب کرده ایم با اضافه کردن یک تایمر سیستمی که دو بار در روز اجرا می شود و به طور خودکار هر مدرکی را که در طی سی روز از انقضا باشد به طور خودکار تمدید می کند.

می توانید وضعیت تایمر را با systemctlپرس و جو کنید:

sudo systemctl status certbot.timer

 

خروجی

certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago
Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left
Triggers: ● certbot.service

 

برای آزمایش فرایند تجدید ، می توانید با استفاده از certbot یک اجرای خشک انجام دهید:

sudo certbot renew --dry-run

 

اگر خطایی نمی بینید ، همه چی روال است. در صورت لزوم ، Certbot گواهی های شما را تمدید کرده و Nginx را بارگیری می کند تا تغییرات را انتخاب کند. اگر فرایند تمدید خودکار هر زمان از کار نافتد ، Letry Encrypt پیامی را به ایمیلی که مشخص کرده اید ارسال می کنیم و به شما هشدار می دهیم که گواهی شما به پایان رسیده است.
نتیجه

در این آموزش ، شما lets Encrypt client certbot را نصب کردید ، گواهی های SSL را برای دامنه خود بارگیری کردید ، Nginx را برای استفاده از این گواهینامه ها پیکربندی کرده و تجدید خودکار گواهی نامه را تنظیم کردید. اگر سؤال دیگری در مورد استفاده از Certbot دارید ، با پشتیبانان فاما سرور تماس بگیرید.

 

مقاله نحوه رمزگذاری Nginx در اوبونتو از وبلاگ فاما سرور.

 

 

 

اشتراک گذاری

مقالات مرتبط این مطلب پیشنهاد می شود

خدمات فاما سرور

  • سرور مجازی

    سرور مجازی

    سرور مجازی یکی از سرویس های پر استفاده و مقرون بصرفه برای کسب و کارهای کوچک و خدمات سایر در ضمینه IT و شبکه میباشد که توان پشتیبانی از 128 هسته و 512 گیگ رم را دارد.

  • سرور اختصاصی

    سرور اختصاصی

    سرور های اختصاصی فاماسرور از دو گروه نسل جدید و پردازش سنگین استفاده میشود که میتوانید تا 155 گیگاهرتز پردازش و تا 1.5 ترابایت رم را در اختیار داشته باشید.

  • بیگ بلوباتن

    بیگ بلوباتن

    سرور بیگ بلوباتن اختصاصی و مجازی یکی از خدمات , برای استفاده از کلاس های آموزشی , جلسات و ... بصورت دوطرفه و با کیفیت تضمین شده میباشد.

  • هاست لینوکس

    هاست لینوکس

    در هاست لینوکس با منابع گوناگون امکان میزبانی از سایت های بزرگ و پر بازدید نیز وجود دارد و میتوان از مزایا و خدمات آن استفاده کرد.

  • هاست ویندوز

    هاست ویندوز

    هاست های ویندوز فاماسرور میزبانی شده در ایران و هلند میباشد که با سخت افزار ها و استوریج های نسل جدید میزبانی و پشتیبانی میشوند.

  • ثبت دامنه

    ثبت دامنه

    ثبت دامنه های بین المللی , دامنه ir و دامنه های با پسوند های مختلف در فاماسرور پشتیبانی میشوند.