چطور گواهی Let's Encrypt (گواهی ssl) را روی ubuntu 16.04 با آپاچی نصب کنیم؟

از این دست راهنماها فراوون توی اینترنت هست! پس چرا این رو نوشتم؟ چون به عدد انفس خلائق راه برای نصب 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)قدم اول: نصب let's encrypt سمت کاربر (client)اولین کار اینه که مخزن certbot رو اضافه کنیم:sudo add-apt-repository ppa:certbot/certbotبعدش همه پکیج هاتون رو آپدیت کنیم:sudo apt-get updateو در آخر از مخزن جدیدی که اضافه کردیم certbotی رو که با پایتون برای آپاچی نوشته شده نصب می کنیم:sudo apt-get install python-certbot-apacheقدم دوم: تنظیم گواهی sslحالا باید گواهی رو برای دامنه ی مد نظرمون تنظیم کنیم: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و تمام!