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

سرور مجازی NVMe

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

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



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

گواهی‌های صادر شده توسط Let’s Encrypt مورد اعتماد همه مرورگرهای اصلی هستند و 90 روز از تاریخ صدور اعتبار دارند.

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

پیش نیازها

قبل از ادامه، از رعایت پیش نیازهای زیر اطمینان حاصل کنید:

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

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

sudo dnf install mod_ssl openssl

هنگامی که بسته mod_ssl نصب می شود، باید یک کلید خود امضا شده و فایل های گواهی برای آن ایجاد کند localhost. اگر فایل‌ها به‌طور خودکار ایجاد نمی‌شوند، می‌توانید با استفاده از openssl دستور:

sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \  -out /etc/pki/tls/certs/localhost.crt \  -keyout /etc/pki/tls/private/localhost.key

Certbot را نصب کنید

Certbot رایگان است command-line ابزاری که کار را ساده می کند process برای به دست آوردن و تمدید گواهینامه های SSL از و فعال کردن خودکار HTTPS در سرور شما.

بسته certbot در استاندارد گنجانده نشده است CentOS 8 مخزن، اما می توان آن را از وب سایت فروشنده دانلود کرد.

زیر را اجرا کنید wget
دستور به عنوان کاربر root یا sudo برای دانلود اسکریپت certbot در /usr/local/bin فهرست راهنما:

sudo wget -P /usr/local/bin https://dl.eff.org/certbot-auto

پس از اتمام دانلود، فایل را قابل اجرا کنید:

sudo chmod +x /usr/local/bin/certbot-auto

گروه 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 را به فایل موقت می دهد تا تأیید کند که دامنه درخواستی به سروری که ربات در آن اجرا می شود حل می شود.

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

برای ساده‌تر کردن تنظیمات، همه درخواست‌های 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
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"

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

SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

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

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

sudo systemctl reload httpd

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

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

در صورت موفقیت، 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 2020-01-26. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

اکنون که همه چیز تنظیم شده است، دامنه مجازی خود را ویرایش کنید 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

  Protocols h2 http/1.1

  <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/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

  # Other Apache Configuration

</VirtualHost>

پیکربندی بالا HTTPS را مجبور می‌کند و از www به نسخه غیرwww هدایت می‌کند. همچنین HTTP/2 را فعال می کند که سایت شما را سریعتر و قوی تر می کند. به راحتی می توانید پیکربندی را مطابق با نیاز خود تنظیم کنید.

پیشنهاد می‌کنیم بخوانید:  روش نصب و استفاده از Curl on CentOS 8

سرویس آپاچی را مجددا راه اندازی کنید:

sudo systemctl restart httpd

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

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

تست SSLLABS

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

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

دستور زیر را برای ایجاد یک cronjob جدید اجرا کنید که گواهی را تمدید می کند و Apache را مجددا راه اندازی می کند:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null

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

sudo /usr/local/bin/certbot-auto renew --dry-run

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

نتیجه

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

برای کسب اطلاعات بیشتر در مورد اسکریپت Certbot، به سایت مراجعه کنید اسناد Certbot
.

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

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

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


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

روش نصب MySQL روی CentOS 8

روش نصب PHP روی CentOS 8

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

روش راه اندازی هاست مجازی آپاچی CentOS 8
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 13:48:02

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

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

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