چگونه می توان گواهینامه ZeroSSL را در Apache و Nginx پیاده سازی کرد؟

بیایید به دنبال دریافت یک گواهی SSL / TLS رایگان از ZeroSSL باشیم و آن را در سرورهای وب Apache و Nginx پیاده سازی کنیم.


مقدمه

شاید در مورد اصطلاحاتی مانند HTTP و HTTPS چیزهای زیادی شنیده باشید. در روزهای اولیه پروتکل تعریف می شد که به عنوان نامگذاری می شد پروتکل انتقال HyperText (HTTP). این راهی برای برقراری ارتباط از مرورگر به وب سرور است. هنگامی که این ارتباط اتفاق می افتد ، داده هایی که با پروتکل HTTP حرکت می کنند ، فقط در قالب های متن روشن حرکت می کنند. به همین دلیل مشخص شده است که ارتباط HTTP امن نیست و هکرها قادر به حمله و رهگیری پیامهای مهم و حساس بودند.

برای حل این مسئله ، HTTPS پروتکل وارد تصویر شد این یک پروتکل امن است و مخفف مخفف آن است پروتکل انتقال HyperText امن. در صورت وقوع ارتباط ، رمزگذاری داده ها به سادگی انجام می شود و داده ها از مرورگر وب به سمت وب سرور می شوند. به طوری که اگر هکری آن اطلاعات را جمع کند ، همه رمزگذاری شده است.

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

پروتکل HTTPS روی هر دو چیز کار می کند ، یعنی SSL (Secure Socket Layer) یا TLS (Transport Layer Security). هر دو ابزار از PKI (زیرساخت کلید عمومی) استفاده می کنند. PKI ، به نوبه خود ، از دو کلید استفاده می کند ، یعنی. کلیدهای عمومی و خصوصی هر چیزی که با استفاده از کلید عمومی رمزگذاری شده باشد می تواند با استفاده از کلید خصوصی رمزگشایی شود و برعکس.

وقتی یک گواهی SSL / TLS را در وب سایت خود نصب می کنیم ، ‘رمزگذاری داده هاویژگی فعال می شود. SSL به عنوان یک پاسگاه برای تضمین امنیت داده های تبادل شده بین اینترنت بین مرورگر کاربر و سرور وب سایت استفاده می شود.

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

ZeroSSL یک مجوز صدور گواهینامه (CA) است که نصب گواهینامه را برای ایمن سازی وب سایت امکان پذیر می کند. می توانید حداکثر 3 گواهی نامه با اعتبار 90 روز را بصورت رایگان دریافت کنید.

صفر SSL

  • با ZeroSSL ثبت نام کنید
  • پس از ورود به صفحه ، صفحه زیر ظاهر می شود. روی Click کلیک کنیدگواهی جدید. “

  • URL ای را که می خواهید ایمن کنید وارد کنید و روی theگام بعدی.

  • گواهی 90 روزه و بعدی را انتخاب کنید

  • بیایید با گزینه CSR خودکار تولید کنیم

  • با برنامه “رایگان” ادامه دهید

در مرحله بعد ، باید مالکیت دامنه را تأیید کنید. چند گزینه وجود دارد.

  • DNS – اگر می توانید یک مطلب ضبط DNS اضافه کنید
  • نامه الکترونیکی – اگر می توانید ایمیل را دریافت کنید [ایمیل محافظت شده]
  • بارگذاری پرونده – اگر می توانید یک پرونده را در ریشه دامنه بارگذاری کنید

آنچه برای شما مفید است را انتخاب کنید. من با ورود DNS ادامه خواهم داد.

  • من CNAME را اضافه کردم و آماده تأیید دامنه هستم.

  • سرانجام ، پس از تأیید ، گواهی SSL آماده بارگیری است.

در اینجا گواهینامه های بارگیری شده من است.

زمان اجرای آن است.

پیاده سازی در آپاچی

در زیر ، Apache را بر روی اوبونتو نصب می کنم.

وارد سرور شوید و با استفاده از دستور apt-get نصب کنید.

sudo apt-get install apache2

بیایید دریابیم که Apache با استفاده از دستور systemctl در حال اجرا است یا خیر.

[ایمیل محافظت شده]: ~ # systemctl وضعیت apache2
● apache2.service – سرور Apache HTTP
بارگذاری شده: بارگذاری شده (/lib/systemd/system/apache2.service؛ فعال شده؛ پیش فرض فروشنده: فعال شده)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
فعال: فعال (در حال اجرا) از شنبه 2020-05-23 16:15:56 UTC؛ 3s پیش
فرآیند: 7852 ExecStop = / usr / sbin / apachectl stop (کد = خارج شده ، وضعیت = 0 / موفقیت)
فرآیند: 14179 ExecStart = / usr / sbin / apachectl شروع (کد = خارج شده ، وضعیت = 0 / موفقیت)
PID اصلی: 14196 (apache2)
وظایف: 55 (حد مجاز: 2362)
CGroup: /system.slice/apache2.service
├─14196 / usr / sbin / apache2 -k شروع
├─14199 / usr / sbin / apache2 -k شروع
20014200 / usr / sbin / apache2 -k شروع

23 مه 16 16:15:56 geekflare-lab systemd [1]: راه اندازی سرور Apache HTTP…
مه 23 16:15:56 geekflare-lab apachectl [14179]: AH00558: apache2: با استفاده از 127.0.1.1 نمی توان نام دامنه کاملاً واجد شرایط سرور را تعیین کرد. “خدمت” را تنظیم کنید
23 مه 16 16:15:56 geekflare-lab systemd [1]: سرور Apache HTTP آغاز شد.

عالی است ، در حال اجرا است.

دامنه من (lab.geekflare.com) قبلاً به این سرور Apache نشان می دهد.

اما همانطور که می بینید ، آن امن نیست ، بنابراین ، ما گواهی ای را که از ZeroSSL گرفتیم پیکربندی می کنیم.

  • بیایید یک دایرکتوری به نام sslCA تحت و غیره ایجاد کنیم تا پرونده های گواهی را ذخیره کنیم.

سی دی / غیره
mkdir sslCA

  • پرونده ها را به پوشه تازه ایجاد شده روی سرور منتقل کنید

[ایمیل محافظت شده]: / etc / sslCA # ll
جمع 20
drwxr-xr-x 2 root root 4096 18 مه 18 12:13 ./
drwxr-xr-x 92 root root 4096 22 مه 22 06:07 ../
-rw-r – r– 1 root root 2430 18 May 18 05:37 ca_bundle.crt
-rw-r – r– 1 root root 2292 18 مه 18 05:37 گواهینامه.crt
-rw-r – r– 1 root root 1702 18 May 18 05:37 private.key

  • ماژول SSL را فعال کنید

sudo a2enmod SSL

  • ما مجبوریم وب سرور را مجدداً راه اندازی کنیم تا تغییرات شناخته شود.

راه اندازی مجدد sudo service apache2

  • مرحله بعدی پیکربندی پرونده های گواهی نامه در پرونده پیکربندی Apache SSL است.

cd / etc / apache2 / mods-available

  • نام پرونده است ssl.conf. باید موارد زیر را در بخشنامه اضافه کنیم.

SSLE ادامه دهید
SSLCertificateFile /etc/SSLCA/certificate.crt
SSLCertificateKeyFile /etc/SSLCA/private.key
SSLCertificateChainFile /etc/SSLCA/ca_bundle.crt

  • پرونده را ذخیره کرده و از آن خارج شوید: wq!

پس از انجام راه اندازی مجدد ، SSL در سایت فعال می شود. بگذارید با استفاده از https: به سایت دسترسی پیدا کنیم: //

و ، همانطور که می بینید ، “اتصال مطمئناست “. این بدان معنی است که گواهی SSL ما با موفقیت در وب سرور ما اعمال شده است.

پیاده سازی روی Nginx

Nginx در مخازن پیش فرض اوبونتو قرار دارد ، بنابراین می توان آن را از اینجا با استفاده از سیستم بسته بندی مناسب نصب کرد.

  • دستور زیر برای نصب “نگینکس“.

sudo apt نصب nginx

  • پس از موفقیت در نصب ، می توانیم Nginx را با استفاده از دستور زیر شروع کنیم.

systemctl شروع nginx

  • وضعیت Nginx را بررسی کنید.

[ایمیل محافظت شده]: ~ # systemctl nginx status
● nginx.service – سرور وب با کارایی بالا و یک سرور پروکسی معکوس
بارگذاری شده: بارگیری شده (/lib/systemd/system/nginx.service؛ فعال شده؛ از پیش تعیین شده فروشنده: فعال شده)
فعال: فعال (در حال اجرا) از سه شنبه 2020-05-19 06:54:00 UTC؛ 4 روز پیش
اسناد: man: nginx (8)
فرآیند: 8634 ExecStop = / sbin / start-stop-daemon –quiet –stop –retry QUIT / 5 –pidfile /run/nginx.pid (کد = خارج شده ، وضعیت = 0 / موفقیت)
فرآیند: 8661 ExecStart = / usr / sbin / nginx -g Daemon on؛ master_process در؛ (کد = خارج شده ، وضعیت = 0 / موفقیت)
فرآیند: 8653 ExecStartPre = / usr / sbin / nginx -t -q -g Daemon on؛ master_process در؛ (کد = خارج شده ، وضعیت = 0 / موفقیت)
PID اصلی: 8664 (nginx)
وظایف: 2 (حد مجاز: 2362)
CGroup: /system.slice/nginx.service
668664 nginx: master master / usr / sbin / nginx -g daemon on؛ master_process در؛
8707 nginx: فرآیند کارگر

19 مه 06:54:00 geekflare-lab systemd [1]: شروع یک سرور وب با کارایی بالا و یک سرور پروکسی معکوس…
مه 19 06:54:00 geekflare-lab systemd [1]: nginx.service: تجزیه PID از پرونده انجام نشد /run/nginx.pid: استدلال نامعتبر
مه 19 06:54:00 geekflare-lab systemd [1]: راه اندازی یک سرور وب با کارایی بالا و یک سرور پروکسی معکوس.

  • همانطور که انتظار می رود ، مرورگر هشدار را نشان می دهد زیرا اتصال به این سایت ایمن نیست.

بیایید مجوز لازم را برای ایمن سازی سایت با استفاده از HTTPS به سرعت اجرا کنیم.

  • بیایید پرونده shembull.com.conf را در مکان /etc/nginx/conf.d ایجاد کنیم. محتوای پرونده مانند شکل زیر خواهد بود.

سرور {
گوش دادن 443 SSL default_server؛
listen [::]: 443 SSL default_server؛
server_name lab.geekflare.com lab.geekflare.com؛
root / var / www / html؛
}

  • اکنون لازم است نام پرونده گواهینامه را در پرونده nginx.conf که در فهرست “/ etc / nginx” قرار دارد اضافه کنید.
  • موارد زیر را در بخشنامه http اضافه کنید

ssl_certificate /etc/sslCA/certificate.crt؛
ssl_certificate_key /etc/sslCA/private.key؛

  • برای تأیید تغییرات ، Nginx را دوباره راه اندازی کنید

systemctl nginx را مجدداً راه اندازی کنید

و اینجا می رویم.

علاقه مند به یادگیری نگینکس هستید؟ اینو ببین دوره اصول.

آزمایش پیکربندی SSL / TLS

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

نتیجه

امیدوارم که این امر به شما ایده ای برای گرفتن گواهینامه از ZeroSSL و اجرای آن در دو سرور محبوب ترین وب بدهد.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map