از این دست راهنماها فراوون توی اینترنت هست! پس چرا این رو نوشتم؟ چون به عدد انفس خلائق راه برای نصب let's encrypt وجود داره و من هم یکی از خلائق هستم!
این راهنما ترجمه ای از راهنمای Digital Ocean است. راهنمای نصب هم مربوط به سرور Ubuntu 16.04 است. چون الان خیلی از شرکت های ارائه دهنده سرور مجازی، این نسخه از اوبونتو رو دارند. حتا ابرآروان که من باهاش کار می کنم هنوز نسخه ی 20.04 رو نذاشته و یه بار هم که سرور 18.04 ازشون گرفتم قفل کرد و مشکل پیش اومد و خودشون به جاش سرور 16.04 بهم دادند.
نکته: ابرآروان خودش پروتکل https رو روی سایت هایی که از DNS ابری شون استفاده می کنند، ارائه می ده. نوعش هم همین لتز انکریپته و خودش هم 90 روز یه بار تمدید می شه.
احتمالن قضیه برای شمایی که این مطلب رو تا این جا خوندید واضح باشه! ما یه سرور مجازی ubuntu 16.04 گرفتیم و با آپاچی (apache2) یک یا چند دامنه رو بهش متصل کردیم و حالا برای دامنه هامون نیاز به پروتکل https داریم که هم اون قفل سبز کنار سایتمون بیاد، هم (اگه سایتمون تعاملیه و اطلاعاتی از کاربر می گیره) کسی نتونه این اطلاعات رو وسط کار بدزده و هم خدای نکرده کاربرمون پیام «این سایت امن نیست» و علامت قرمز کنار آدرس سایت رو نبینه.
این let's encrypt هم یه سازمان غیرانتفاعیه که به عنوان یه «مرجع صدور گواهی دیجیتال» (CA) به صورت رایگان کار می کنه. در واقع می شه از این سازمان گواهی ssl رایگان گرفت. البته این گواهی ها 90 روزه هستند و بعدش نیاز به تمدید دارند که راه های زیادی برای تمدید خودکارشون هست (کاری که توی این آموزش و تقریبن همه ی آموزش های دیگه انجام می شه).
به جز این که این آموزش برای ubuntu 16.04 نوشته شده و ممکنه (فقط ممکنه) روی نسخه های دیگه ی اوبونتو یا توزیع های دیگه ی لینوکس جواب نده، باید آپاچی رو هم روی سرور خودتون نصب داشته باشید. می تونید از راهنمای سایت خود اوبونتو کمک بگیرید. علاوه بر این واضحه که باید از قبل دامنه رو به سرور وصل کرده باشید و تنظیماتش رو توی آپاچی انجام داده باشید (/etc/apache2/sites-available/yourdomain.com.conf)
اولین کار اینه که مخزن certbot رو اضافه کنیم:
sudo add-apt-repository ppa:certbot/certbot
بعدش همه پکیج هاتون رو آپدیت کنیم:
sudo apt-get update
و در آخر از مخزن جدیدی که اضافه کردیم certbotی رو که با پایتون برای آپاچی نوشته شده نصب می کنیم:
sudo apt-get install python-certbot-apache
حالا باید گواهی رو برای دامنه ی مد نظرمون تنظیم کنیم:
sudo certbot --apache -d yourdomain.com
اگه می خواید حالات مختلف دامنه رو تنظیم کنید (مثلن با www) یا زیردامنه ها رو هم تنظیم کنید بهتره هر کدوم رو جداگونه بنویسید اما دامنه ی اصلی تون رو اول بنویسید:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
اگه چند تا دامنه رو به این سرور وصل کردید باید برای هر کدوم یه بار این دستور رو اجرا کنید تا جداگونه براتون گواهی ssl تنظیم بشه.
بعد از این که هر کدوم از دو دستور بالا رو زدید، یه سری چیز ازتون پرسیده می شه. یکی ایمیل تون که اگه کلید گواهی گم شد، براتون ایمیل بشه یا این که در کنار https، پروتکل http هم فعال باشه یا همه ی درخواست ها به سمت https هدایت بشن (اگه کار خاصی با http ندارید، بهتره بذارید همه درخواست روی https اجرا بشن).
یه سری تایید هم ازتون گرفته می شه. مثلن موافقت با قوانین و شرایط استفاده و این که می خواید خبرنامه دریافت کنید یا نه.
بعدش بهتره تنظیمات آپاچی رو هم بررسی کنید و مطمئن بشید ssl روی آپاچی فعاله، سایت شما فعاله و یه بار هم محض اطمینان آپاچی رو ریستارت کنید:
sudo a2ensite yourdomain.com.conf sudo a2enmod ssl sudo systemctl reload apache2
دیگه کار تمومه و تنظیمات شما در /etc/letsencrypt/live نصب شدند. حالا اگه به سایت زیر برید می تونید بفهمید گواهی شما درست نصب شده یا نه:
https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com&latest
برای این که مطمئن بشید، گواهی شما به صورت خودکار تمدید می شه دستور زیر رو بزنید:
sudo certbot renew --dry-run
و تمام!