• شاخه: سرور    ::    بازدید: ۸۸۰۳
  • ۵۲

سرویس SSL رایگان با Let’s Encrypt، حتی برای دامنه‌های ir.

اگر پیش از گواهینامه امنیتی (SSL یا TLS) را نصب کرده باشید، از سختی کار نصب و تمدید آن آگاهید. از طرف دیگر چند سالیست که از سوی گوگل تاکید بیشتری بر نصب این گواهینامه می‌شود. خبر خوب اینکه از حدود سه هفته قبل یک مرجع صدور گواهینامه دیجیتال بصورت عمومی سرویس گواهینامه امنیتی رایگان خود را ارائه نموده است که براحتی هر چه تمام (حداقل در برخی پلتفرم‌ها) نصب می‌شود.

Let’s Encrypt توسط ISRG تامین می‌شود که سازمان‌های بزرگی همچون بنیاد موزیلا، سیسکو و Akamai از آن حمایت می‌کنند. خبر بسیار خوب اینکه این سرویس برای دامنه‌های ir. نیز قابل نصب است.

همانطور که گفته شد نصب این گواهینامه بسیار آسان است.

در ادامه طریقه نصب letsencrypt را بر روی سرور centos 6 برای وب‌سرور apache2 با هم مرور خواهیم کرد.

با ssh به سرور خود متصل می‌شویم و دستورات زیر را برای نصب پیش‌نیازهای letsencrypt وارد می‌کنیم.

حالا باید از مخزن گیت‌هاب letsencrypt یک کلون بگیریم.

با اجرای فرمان زیر letsencrypt کلیه نیازمندی‌های خود را بصورت خودکار نصب می‌کند.

اگر خروجی زیر را مشاهده کردید یعنی می‌توانید به سراغ مراحل بعدی دریافت گواهی ssl بروید.

اگر در طی مرحله بالا به خطای زیر برخورد کردید سرویس وب‌سرور خود را خاموش کنید.

یا اگر به خطای زیر برخوردید

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

خب برای نصب گواهی ssl بر روی دامنه مورد نظرتان از کد زیر استفاده کنید:

بعد از وارد کردن دستور بالا از شما یک ایمیل برای ارتباط‌های احتمالی آینده می‌خواهد. اگر همه چیز با موفقیت انجام شود متن زیر را مشاهده خواهید کرد:

خب حالا ما موفق شدیم که گواهی ssl خود را از letsencrypt دریافت کنیم. برای اینکه بتوانیم به https دسترسی داشته باشیم باید به فایل کانفیگ دامنه خود در وبسرور آپاچی برویم. و خطوط زیر را به آن اضافه کنیم:

حالا برای اعمال تغییرات وبسرور آپاچی را مجددا راه‌اندازی می‌کنیم.

برای اینکه ببینید تنظیمات شما صحیح بوده یا نه دامنه خود را در سایت زیر چک کنید تا ببینید چه نمره‌ای به سایت شما می‌دهد:

hive.ir.ssl

این گواهی برای ۹۰ روز معتبر است که بعد از اتمام این مدت باید گواهی را تمدید کنید. این عملیات با کد ساده‌ای که توسط letsencrypt ارائه شده است قابل انجام است. ما یک کرون جاب برای خودکار کردن این تمدید ایجاد می‌کنیم تا نگران نامعتبر شدن گواهی خود نباشیم:

اگر مشکلی بود بپرسین.

منابع:

+ + +

علی ذوقی

از سال ۸۷ بطور تخصصی برنامه نویس PHP هستم. اوایل با PEAR کار می کردم ولی از سال ۹۱ تاکنون بطور حرفه ای با Yii کار می کنم. از دروپال هم برای پروژه های بزرگ استفاده می کنم. به مباحث فنی سرور و شبکه علاقه خاصی دارم ...

همچنین ممکن است دوست داشته باشید ...

۵۲ واکنش

  1. یاشار گفت:

    مرسی از مطلب زیباتون . آیا میشه از این سرویس رو بر روی هاست های اشتراکی که از سی پنل استفاده می کنن نصب کرد ؟

  2. سید گفت:

    سلام
    برای وب سرور iis هم میشه توضیح بدین چه طور میشه استفاده کرد؟

  3. آرمیشا گفت:

    بسیار آموزش عالی بود . سپاسگزارم

  4. mohammad گفت:

    برای هاست های اشتراکی این امکان وجود داره ؟

  5. رامین گفت:

    سلام و عرض ادب

    متاسفانه من با SSL آشنایی زیادی ندارم.
    آیا با استفاده از این روش که معرفی کردید میشه سرور برای ایجاد ربات تلگرام رو راه اندازی کرد؟ چون برای ربات تلگرام لازمه که سرور SSL داشته باشه

  6. میلاد گفت:

    سلام
    لطفا برای cPanel برای دامنه ir یک آموزش دقیق فارسی بزارید
    ممنونم

  7. reza گفت:

    سلام عزیز

    خب حالا ما موفق شدیم که گواهی ssl خود را از letsencrypt دریافت کنیم. برای اینکه بتوانیم به https دسترسی داشته باشیم باید به فایل کانفیگ دامنه خود در وبسرور آپاچی برویم. و خطوط زیر را به آن اضافه کنیم:

    تا اینجا
    درست پیش رفت ولی دستورات برای اپاچی رو اعمال نمیشه

  8. reza گفت:

    سلام برادر بزرگوار

    متاسفانه من عجله کردم و درست نوشته شما رو نخوندم ودستورات رو به ترتیب در ssh کپی پیس کردم
    یعنی این خطوط رو هم

    DocumentRoot /var/www/example
    ServerName example.ir
    ServerAlias http://www.example.ir
    ErrorLog logs/example.ir-error_log
    CustomLog logs/example.ir-access_log common
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.ir/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.ir/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.ir/chain.pem
    SSLProtocol ALL -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!aNULL:!MD5
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
    SSLHonorCipherOrder on

    وارد کردم و بعد فهمیدم که دیگه دیر شده بود

  9. حمید گفت:

    البته certbot میتونه بطور خودکار همه ی این کارهارو انجام بده براتون
    https://certbot.eff.org

  10. amir گفت:

    سلام همه خطاتون مشکل دارن

  11. mohammad گفت:

    خیلی عالی بود ممنون
    فقط به این هم اشاره میکردید ادرس نصب موقعی مثلا دایرکت ادمین نصبه فرق میکنه بعضی ها فقط میان کپی پیست میکنن فکر میکنن اتومات همه چی اوکی میشه حتی به تغییر اسم example هم فکر نمیکنن
    به هر حال ممنون

  12. پویا گفت:

    اگه وب سرور به جای اپاچی nginx باشه چه تفاوت هایی میکنه این روند؟

  13. wahab گفت:

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

  14. مهران مهرآفرین گفت:

    سلام خیلی ممنون از آموزش بسیار مفیدتون. من یه برنامه نویس مبتدی اندروید هستم میخواستم برای ارتباط با وب سرویس که با استفاده از کتاب خانه ی Retrofit نوشتم از طریق سرویس SSL یا همون پروتکل Https ارتباط برقرار کنم اما اصلا نمیدونم باید چی کار کنم و اصلا فرقش در ارتباط بر قرار کردن با پروتکل Http تو چیه؟(منظورم نحوه ی پیاده سازیشه)

  15. sepehr گفت:

    آقا من ی مشکلی ک دارم توی مرحله ./letsencrypt-auto certonly –webroot -w /var/www/example -d example.ir -d http://www.example.ir
    بهم میزنه
    /var/www/famprinting does not exist or is not a directory

  16. sajjad گفت:

    وقتی به این روش نصب شد چجوری پاک کنیم؟

    • علی ذوقی گفت:

      سلام بزرگوار
      پاک کردن یعنی اینکه شما تمدید خودکار رو غیر فعال کنید ( فایل کرون رو غیر فعال کنید اگر فعال کردین) و پورت ۴۴۳ رو ببندید.

  17. sajjad گفت:

    ظاهرا تنظمات apache رو تغییر داده و سایت غیر قابل دسترسه حتی با نصب دوباره apache هم درست نشد…

  18. محمد گفت:

    سلام
    نصب بر روی ویندوز رو هم بزارید

  19. محمد گفت:

    منظورم iis هست

  20. سعید گفت:

    سلام و ممنون از مطلب مفیدتون
    جسارتاً این اس اس ال تمدید ماهانه میخواد یا سالیانه؟ از دوستان میگفتند سه ماه یک بار باید تمدید بشه

    • علی ذوقی گفت:

      سلام بزرگوار
      هر سه ماه یک بار بصورت خودکار تمدید میشه
      با اسکریپتی که در کرون جاب باید بذارین و در آموزش فوق توضیح داده شده

      • صادق گفت:

        لطفا بفرمایید برای هاست اشتراکی با پنل دایرکت ادمین
        روشی وجود دارد که بصورت خودکار تمدید کند؟

        • علی ذوقی گفت:

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

          • صادق گفت:

            ممنونم از پاسختون
            ولی من دسترسی به سرور ندارم و صرفا روی هاست اشتراکی خودم ssl را فعال کردم
            حالا این پلاگینی که میگید کجاست؟ و چطوری باید فعال کرد؟

  21. مصطفی گفت:

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

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *