از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Apache را با Let’s Encrypt روشن کنید CentOS 8
سرفصلهای مطلب
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 را به فایل موقت می دهد تا تأیید کند که دامنه درخواستی به سروری که ربات در آن اجرا می شود حل می شود.
برای سادهتر کردن تنظیمات، همه درخواستهای HTTP را ترسیم میکنیم .well-known/acme-challenge
به یک دایرکتوری واحد، /var/lib/letsencrypt
.
دستورات زیر را برای ایجاد دایرکتوری و قابل نوشتن برای سرور آپاچی اجرا کنید.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
برای جلوگیری از تکرار کد و حفظ پیکربندی بیشتر، دو قطعه پیکربندی زیر را ایجاد کنید:
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>
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 پیکربندی به شرح زیر است:
<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 را فعال می کند که سایت شما را سریعتر و قوی تر می کند. به راحتی می توانید پیکربندی را مطابق با نیاز خود تنظیم کنید.
سرویس آپاچی را مجددا راه اندازی کنید:
sudo systemctl restart httpd
اکنون می توانید وب سایت خود را با استفاده از آن باز کنید https://
و یک نماد قفل سبز رنگ را مشاهده خواهید کرد.
اگر دامنه خود را با استفاده از تست سرور SSL Labs
، همانطور که در زیر نشان داده شده است، نمره A+ دریافت خواهید کرد:
تمدید خودکار گواهینامه 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
.
اگر سوال یا بازخوردی دارید، در کامنت بگذارید.
این پست بخشی از LAMP Stack را روشن نصب کنید CentOS 8 سلسله.
سایر پست های این مجموعه:
روش نصب آپاچی روی CentOS 8
روش نصب MySQL روی CentOS 8
روش نصب PHP روی CentOS 8
Apache را با Let’s Encrypt روشن کنید CentOS 8
روش راه اندازی هاست مجازی آپاچی CentOS 8
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-27 13:48:02