وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Apache را با Let’s Encrypt روشن کنید CentOS 7

0 2
زمان لازم برای مطالعه: 5 دقیقه



Let’s Encrypt یک مرجع گواهی رایگان، خودکار و باز است که توسط گروه تحقیقاتی امنیت اینترنت (ISRG) توسعه یافته است. گواهینامه های صادر شده توسط Let’s Encrypt به مدت 90 روز از تاریخ صدور معتبر هستند و امروزه مورد اعتماد همه مرورگرهای اصلی هستند.

در این آموزش، ما مراحل لازم برای نصب یک گواهینامه رایگان Let’s Encrypt SSL را در a پوشش خواهیم داد CentOS 7 سروری که آپاچی را به عنوان وب سرور اجرا می کند. ما از ابزار certbot برای دریافت و تمدید گواهینامه های Let’s Encrypt استفاده خواهیم کرد.

پیش نیازها

قبل از ادامه این آموزش مطمئن شوید که پیش نیازهای زیر را برآورده کرده اید:

  • نام دامنه ای داشته باشید که به IP سرور عمومی شما اشاره دارد. استفاده خواهیم کرد example.com.
  • آپاچی بر روی سرور شما نصب و اجرا می شود.
  • آپاچی مجازی داشته باشید host
    برای دامنه شما
  • پورت های 80 و 443 در فایروال شما باز هستند.

بسته های زیر را که برای سرور وب رمزگذاری شده SSL مورد نیاز است نصب کنید:

yum install mod_ssl openssl

Certbot را نصب کنید

Certbot ابزاری است که کار را ساده می کند process برای دریافت گواهینامه های SSL از Let’s Encrypt و فعال کردن خودکار HTTPS در سرور شما.

بسته certbot برای نصب از EPEL قابل دریافت است. اگر مخزن EPEL روی سیستم شما نصب نیست، می توانید با استفاده از دستور زیر آن را نصب کنید:

sudo yum install epel-release

پس از فعال شدن مخزن EPEL، بسته certbot را با تایپ کردن:

sudo yum install certbot

گروه Strong Dh (Diffie-Hellman) را ایجاد کنید

تبادل کلید دیفی-هلمن (DH) روشی برای تبادل امن کلیدهای رمزنگاری از طریق یک کانال ارتباطی ناامن است. مجموعه جدیدی از پارامترهای 2048 بیتی DH را برای تقویت امنیت ایجاد کنید:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
شما می توانید اندازه را تا 4096 بیت تغییر دهید، اما در این صورت، بسته به آنتروپی سیستم، تولید ممکن است بیش از 30 دقیقه طول بکشد.

دریافت گواهینامه Let’s Encrypt SSL

برای دریافت گواهی SSL برای دامنه خود، از افزونه Webroot استفاده می کنیم که با ایجاد یک فایل موقت برای اعتبارسنجی دامنه درخواستی در ${webroot-path}/.well-known/acme-challenge فهرست راهنما. سرور Let’s Encrypt درخواست های HTTP را به فایل موقت می دهد تا تأیید کند که دامنه درخواستی به سروری که ربات در آن اجرا می شود حل می شود.

برای ساده‌تر کردن آن، می‌خواهیم تمام درخواست‌های HTTP را برای آنها ترسیم کنیم .well-known/acme-challenge به یک دایرکتوری واحد، /var/lib/letsencrypt.

دستورات زیر را برای ایجاد دایرکتوری و قابل نوشتن برای سرور آپاچی اجرا کنید:

sudo mkdir -p /var/lib/letsencrypt/.well-knownsudo chgrp apache /var/lib/letsencryptsudo chmod g+s /var/lib/letsencrypt

برای جلوگیری از تکرار کد، دو قطعه پیکربندی زیر را ایجاد کنید:

/etc/httpd/conf.d/letsencrypt.conf
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>
/etc/httpd/conf.d/ssl-params.conf
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options SAMEORIGIN
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

قطعه بالا شامل تراشه‌های پیشنهادی است، OCSP Stapling، HTTP Strict Transport Security (HSTS) را فعال می‌کند و تعداد کمی هدر HTTP متمرکز بر امنیت را اعمال می‌کند.

پیشنهاد می‌کنیم بخوانید:  روش نصب Ruby در CentOS 8

برای اعمال تغییرات، پیکربندی آپاچی را دوباره بارگیری کنید:

sudo systemctl reload httpd

اکنون می‌توانیم ابزار Certbot را با افزونه webroot اجرا کنیم و فایل‌های گواهی SSL را با تایپ کردن به دست آوریم:

sudo certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

اگر گواهی SSL با موفقیت دریافت شود، certbot پیام زیر را چاپ می کند:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-12-07. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

CentOS 7 با آپاچی نسخه 2.4.6 عرضه می شود که شامل آن نمی شود SSLOpenSSLConfCmd بخشنامه این دستورالعمل فقط در آپاچی 2.4.8 بعداً موجود است و برای پیکربندی پارامترهای OpenSSL مانند تبادل کلید Diffie–Hellman (DH) استفاده می‌شود.

ما باید یک فایل ترکیبی جدید با استفاده از گواهینامه Let’s Encrypt SSL و فایل DH تولید شده ایجاد کنیم. برای انجام این کار، تایپ کنید:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

اکنون که همه چیز تنظیم شده است، دامنه مجازی خود را ویرایش کنید host پیکربندی به شرح زیر است:

/etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com

  Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com

  <If "%{HTTP_HOST} == 'www.example.com'">
    Redirect permanent / https://example.com/
  </If>

  DocumentRoot /var/www/example.com/public_html
  ErrorLog /var/log/httpd/example.com-error.log
  CustomLog /var/log/httpd/example.com-access.log combined

  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

  # Other Apache Configuration

</VirtualHost>

با پیکربندی بالا، HTTPS را مجبور می کنیم و از www به نسخه غیرwww هدایت می کنیم. به راحتی می توانید پیکربندی را مطابق با نیاز خود تنظیم کنید.

پیشنهاد می‌کنیم بخوانید:  روش حذف (حذف) دایرکتوری در لینوکس

برای اعمال تغییرات، سرویس Apache را مجددا راه اندازی کنید:

sudo systemctl restart httpd

اکنون می توانید وب سایت خود را با استفاده از آن باز کنید https:// و شما متوجه یک نماد قفل سبز خواهید شد.

اگر دامنه خود را با استفاده از تست سرور SSL Labs
، همانطور که در زیر نشان داده شده است نمره A+ دریافت خواهید کرد:

تست SSLLABS

تمدید خودکار گواهینامه Let’s Encrypt SSL

گواهینامه های Let’s Encrypt به مدت 90 روز معتبر هستند. برای تمدید خودکار گواهی‌ها قبل از انقضا، ما یک cronjob ایجاد می‌کنیم که دو بار در روز اجرا می‌شود و به طور خودکار هر گواهی را 30 روز قبل از انقضا تمدید می‌کند.

را اجرا کنید crontab دستور ایجاد یک cronjob جدید که گواهی را تمدید می کند، یک فایل ترکیبی جدید شامل کلید DH ایجاد می کند و apache را مجددا راه اندازی می کند:

sudo crontab -e
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload httpd"

ذخیره کنید و فایل را ببندید.

برای تست تمدید process، می توانید از دستور certbot به دنبال آن استفاده کنید --dry-run تعویض:

sudo certbot renew --dry-run

اگر خطایی وجود نداشته باشد، به این معنی است که تمدید process موفقیت آمیز بود.

نتیجه

در این آموزش، شما از certbot مشتری Let’s Encrypt برای دانلود گواهینامه های SSL برای دامنه خود استفاده کردید. شما همچنین قطعه های آپاچی را برای جلوگیری از تکرار کد ایجاد کرده اید و آپاچی را برای استفاده از گواهی ها پیکربندی کرده اید. در پایان آموزش، شما یک cronjob برای تمدید خودکار گواهی راه اندازی کرده اید.

اگر می خواهید در مورد روش استفاده از Certbot اطلاعات بیشتری کسب کنید، مستندات آنها
نقطه شروع خوبی است

اگر سوال یا بازخوردی دارید، در کامنت بگذارید.

apache centos بیایید certbot ssl را رمزگذاری کنیم

این پست بخشی از LAMP Stack را روشن نصب کنید CentOS 7 سلسله.
سایر پست های این مجموعه:


روش نصب آپاچی روی CentOS 7

MySQL را نصب کنید CentOS 7

روش راه اندازی هاست مجازی آپاچی CentOS 7

Apache را با Let’s Encrypt روشن کنید CentOS 7
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 13:42:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید