List

گواهینامه های SSL ارتباطات امن و رمزگذاری شده بین یک وب سایت و یک مرورگر اینترنتی را فراهم می کند. SSL مخفف Secure Sockets Layer است و پروتکلی است که رمزگذاری را فراهم می کند. گواهینامه های SSL به طور معمول در صفحاتی که کاربران نهایی نیاز به ارسال اطلاعات حساس در اینترنت مانند جزئیات کارت اعتباری یا کلمه عبور دارند استفاده میشود. به عنوان مثال صفحات پرداخت، فرم های آنلاین و صفحات ورود به سیستم.

Let’s Encrypt یک پروژه است که توسط بنیاد Electronic Frontier Foundation، موزیلا، Akamai، دانشگاه میشیگان و سیسکو پشتیبانی می شود. این یک گواهینامه کاملا خودکار و آزاد است که هدف رمزگذاری کل وب را دارد. یک راه ساده، امن، سریع و آزاد برای خودکار کردن همه چیز در گواهینامه SSL/TLS از جمله ساخت، نصب و تجدید گواهینامه است. از اکتبر 2015، مرورگرهای اصلی، گوگل کروم، موزیلا فایرفاکس، مایکروسافت Edge، سافاری، اپرا Let’s Encrypt را پشتیبانی میکنند.

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

پیش نیاز ها :
  1. سرور ubuntu 16.04 :  این آموزش بر اساس سرور Ubuntu میباشد
  2. دامنه ی ثبت شده، در این آموزش از دامنه domain.com استفاده میکنیم
  3. انجام تنظیمات DNS
  4. Nginx نصب گردد

نصب  Certbot

اولین قدم در نصب Let’s Encrypt برای تهیه گواهی SSL نصب Cerbot بر روی سرور میباشد.ابتدا مخزن را به سرور اضافه نمایید :

$sudo add-apt-repository ppa:certbot/certbot

سپس بسته ها را آپدیت نمایید :

$sudo apt-get update

در نهایت بسته ی Certbot را نصب نمایید :

$sudo apt-get install python-certbot-nginx

حالا Cerbot آماده استفاده است، اما برای اینکه بتوانیم SSL را برای Nginx پیکربندی کنیم، باید برخی از تنظیمات Nginx را بررسی کنیم.

راه اندازی Nginx

Certbot به طور خودکار SSL را برای Nginx پیکربندی میکند، اما باید بتواند سرور را در پیکربندی خود پیدا کند، که این کار را بر اساس Server-name دامنه ای که گواهینامه را برای آن میخواهید ایجاد نمایید انجام میدهد.اگر Nginx را تازه نصب کرده اید میتوانید تنظیمات پیش فرض را با استفاده از ویرایشگر مورد علاقه خود تغییر دهید.

$sudo vim /etc/nginx/sites-available/default

خطی که شامل server_name میباشد را پیدا کنید و مقادیر را با نام دامنه ی خود جایگزین نمایید :

server_name domain.com www.domain.com;

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

$sudo nginx -t

اگر syntax تنظیمات درست بود Nginx را reload نمایید :

$sudo systemctl reload nginx

تنظیمات HTTPS در فایروال

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

با استفاده از دستور زیر میتوانید وضعیت فایروال را بررسی نمایید :

$sudo ufw status

دریافت گواهینامه SSL

Certbot راه های مختلفی را برای دریافت گواهینامه از طریق پلاگین فراهم میکند.

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

$sudo certbot --nginx -d domain.com -d www.domain.com

اگر برای اولین بار است که Certbot را اجرا میکنید از شما میخواهد که آدرس ایمیل را وراد کنید و شرایط سرویس را بپذیرید، بعد از این Certbot با سرور Let’s Encrypt ارتباط برقرار میکند و تایید میکند که شما دامنه ای که قصد دارید برای آن گواهینامه صادر شود را کنترل میکنید.

اگر موارد بدون مشکل پیش برود، Certbot  از شما میپرسد که چگونه تنظیمات HTTPS را انجام دهد.

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

گزینه مورد نظر خود را انتخاب کنید و Enter کنید.سپس تنظیمات بروزرسانی میشود و سرویس nginx را reload میکند، سپس Certbot با نمایش پیغامی موفقیت آمیز بودن ایجاد گواهینامه و ذخیره آن را اعلام میکند.

تایید خودکار نوسازی

گواهینامه های Let’s Encrypt برای 90 روز معتبر هستند.بسته Certbot که نصب کردیم دوبار در روز با اجرای certbot renew با استفاده از systemd timer این کار را انجام میدهد.برای سیستم های non-systemd این قابلیت توسط یک اسکریپت که در /etc/cron.d  قرار دارد انجام میشود.

برای تست فرایند نوسازی میتوانید دستور زیر را اجرا نمایید

$sudo certbot renew --dry-run

اگر هیچ خطایی نداد به این معنیست که به درستی کار میکند، Certbot  گواهینامه را نوسازی میکند و nginx را reload میکند.اگر نوسازی گواهینامه انجام نشود Let’s Encrypt’s برای شما ایمیل میفرستد و منقضی شدن گواینامه را به شما اطلاع خواهد داد.

  Posts

November 20th, 2018

بهترین شبیه ساز اندروید برای لینوکس

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

September 19th, 2018

پشتیبان گیری از لینوکس سرور با BitTorrent Sync

.BitTorrent Sync با استفاده از پروتکل BitTorrent به شما این امکان را میدهد که محتوا را بین سرورها همگام سازی کنید.همچنین بصورت مستقیم میتوانید بین کامپیوتر و گوشی هوشمند خود این همگام سازی را انجام دهید بدون اینکه نیاز باشد محتوا را به سرور third-party ارسال کنید.

September 13th, 2018

نصب Let’s Encrypt روی Nginx

گواهینامه های SSL ارتباطات امن و رمزگذاری شده بین یک وب سایت و یک مرورگر اینترنتی را فراهم می کند. SSL مخفف Secure Sockets Layer است و پروتکلی است که رمزگذاری را فراهم می کند. گواهینامه های SSL به طور معمول در صفحاتی که کاربران نهایی نیاز به ارسال اطلاعات حساس در اینترنت مانند جزئیات کارت اعتباری یا کلمه عبور دارند استفاده میشود.

September 3rd, 2018

بازیابی رمز عبور ESXi

در شرایط مختلفی این امکان وجود دارد که نیاز داشته باشید پسورد ESXi را بازیابی کنید که برای انجام این کار روش های متفاوتی وجود دارد اما نکته ی مهمی که در بازیابی رمز عبور وجود دارد حفظ اطلاعاتی است که روی سرور وجود دارد!

August 28th, 2018

HTTPS چگونه کار میکند ؟

HTTPS بطور ساده همان پروتکل استاندارد HTTP میباشد که از لایه ی رمزنگاری /SSLTLS استفاده میکند.

August 19th, 2018

نصب و پیکر بندی Samba Server روی Ubuntu 16.04

Samba نرم افزار رایگان و متن باز پروتکل SMB/CIFS است که برای سیستم های UNIX/LINUX توسعه داده شده و امکان اشتراک گذاری فایل و پرینتر ها را بین سیستم های UNIX/LINUX و همچنین Windows را در یک شبکه local فراهم میکند.

August 4th, 2018

نحوه‌ی عضویت ESXi در Active Directory

ESXi از روش های مختلف احراز هویت پشتیبانی میکند که یکی از آنها Active Directory است. در واقع شما میتوانید AD را به عنوان مکانیزم احراز هویت به vSphere اضافه کنید.

July 25th, 2018

نصب و کانفیگ Bind9 در Ubuntu/Debian

سرویس DNS یا Domain Name System همانظور که میدانیم سرویس اینترنتی است که ترجمه دامنه را به IP انجام میدهد.با استفاده از DNS نه تنها میتوانیم دامنه را به IP ترجمه کنیم بلکه میتوانیم IP را نیز به دامنه ترجمه کنیم.

July 18th, 2018

راه اندازی NFS Share در Ubuntu 16.04

عبارت NFS کوتاه شده Network File System میباشد و در اینجا قصد داریم نحوه نصب و پیگربندی NFS Share در Ubuntu 16.04 را آموزش دهیم که با استفاده از آن سایر کامپیوتر هایی که در شبکه local شما قرار دارند میتوانند به فایل ها و دایرکتوری های شما دسترسی داشته باشند.

November 19th, 2017

نصب نرم افزار مانیتورینگ Cacti در Ubuntu 16.04

یکی از نرم‌افزارهای متن‌باز(Open Source) و رایگان مانیتورینگ شبکه نرم‌افزار Cacti است.