۱- تاریخچهای بر SSL رایگان در زندگانی من | اگر دنبال ssl مجانی هستی برو بخش ۲
برای وبسایت(ad-venture.ir)، پنل(panel.ad-venture.ir) و کوتاهکنندهی لینک(advn.ir) شرکت ادونچر همیشه از SSL رایگان استفاده کردم. راحت بود، کار راهبنداز بود و تشکیک خاصی در امنیتش هم نبود. هزینه هم نداشت (علی الخصوص با این قیمت دلار). همیشه هم به سادگی از sslforfree.com میگرفتم.
البته در این مسیر بسیار مواردی رو آزموده بودم تا این سایت رو پیدا کرده بودم که هم عین آدمیزاد دامنه رو verify میکرد و هم راحت کلید رو میداد دستم که خودم برم بذارم روی سرور. تا این که یک بار دیدم شکل و شمایلش عوض شده و متاسفانه اون بخش آدمیزادیش خراب شده. یعنی از هر روشی که رفتم نتونستم دامنه رو verify کنم.
کلافه که شدم رفتم تو کار مکاتبه. پیام دادم که چه وضعیه و خلاصه ما همه کارمون درسته ولی دامنه رو احراز نمیکنید شما. که خب اونها هم پاسخ دادن شما اصلا تحریم نمنه دی؟ تحریم میدونی چی هست؟
آب پاکی که ریخت روی دستم گشتم و با سایت letsencrypt.cert.ir آشنا شدم. ایرانی بود، ssl رایگان میداد و همه چیزش هم آدمیزادی کار میکرد. این شد که شد کعبهی sslی من. اما خب ایرادش این بود که معمولا هر وقت ssl من از کار میافتاد، اونام دقیقا همون روز سایتشون پایین بود :/ گاهی یکی دو روز باید صبر میکردم تا بالا بیاد، شاید باورتون نشه گاهی برای این هم مکاتبه میکردم که آقا سایتتونو بیارید بالا سر جدتون :))
یک روز که باز هم letsencrypt.cert.ir پایین بودم، توی توییتر از دوستام سوال کردم که آقا گزینهی بهتری سراغ ندارید؟ و یکی certbot.eff.org رو پیشنهاد داد. همین که پیشنهاد داد رفتم سایت letsencrypt.cert.ir رو رفرش کردم و دیدم درست شده :)) تا این که امروز صبح که باز موعد تمدید بود دیدم باز هم پایینه و گفتم وقتشه برم تو کار certbot.
۲- چگونه SSL رایگان بدون دردسر راهاندازی کنم؟ | certbot
تو این بخش توضیح میدم چطوری با certbot کار کنید (که خیلی توضیح خاصی هم نداره :)) ) ولی بیشتر از اون میخوام نگرانیهاتون در مورد کار با همچین چیزی رو رفع کنم.
این certbot یه برنامه است که کلی web server های مختلف رو میشناسه، سیستمعاملهای مختلف رو میشناسه، و وقتی اجراش کنید با یه دستور ساده میره کانفیگ سرورتون رو تشخیص میده، خود احراز هویت دامنهتون رو انجام میده و خودش کلید میسازه و sign میکنه و خودش هم تنظیمات کلید و اینا رو بهروزرسانی میکنه.
اما گفتم که میخوام نگرانیها رو بشورونم. خودم برای استفاده ازش کلی نگرانی داشتم:
۱- من روی nginxم چنتا دامنه مختلف داشتم، آیا certbot میتونه اینا رو از هم تفکیک بده و بفهمه و اینا؟ بله! مثل آب خوردن
۲- خب nginx من روی یه کانتینر داکری بود. میشه که از certbot استفاده کنم؟ بله!
۳- کانفیگ nginx من خیلی پیچیده است و ممکنه یه ربات نفهمه و خرابکاری کنه: میتونی بهش بگی به کانفیگت دست نزنه و فقط کلیدا رو بهت تحویل بده
این دقیقا کاری بود که من کردم. nginx من روی یه کانتینر معمولی از nginx:latest بود. اول با apk اون certbot رو روش نصب کردم:
docker exec myNginx apk add certbot certbot-nginx
بعد certbot رو ران کردم و با گزینهی certonly بهش فهموندم که دست به کانفیگ من نزن، فقط certificate رو بساز و بده به من.
docker exec -it myNginx certbot certonly --nginx
خودش همهی دامنههایی که روی nginx کانفیگ کرده بودم رو شناخت و ازم پرسید برای کدومشون میخوام، یه چنتا سوال مسخرهی دیگه هم پرسید و نهایتا کلید و certificate رو بهم تحویل داد:
اینم بگم که دفعه اول که ران کردم بهم گفت نشد و نمیشه و این حرفا. دوباره ران کردم شد! بله.
این بود انشای من در باب فراز و فرودهای ssl رایگان