چگونه خطای Let's Encrypt Renewal SSL را در سرور لینوکس حل کنیم؟
راهنمای خطاهای تمدید Certbot، مشکلات تأیید دامنه و گواهی های SSL منقضی شده.
هنگامی که گواهینامه SSL یک وب سایت منقضی می شود، بازدیدکنندگان یک هشدار ناامن را در مرورگر خود مشاهده می کنند. این نه تنها اعتماد کاربران را کاهش می دهد. WHMCS همچنین مشکلات جدی برای سیستم های پرداخت، اتصالات API، پنل های بازی و ورود مشتریان ایجاد می کند.
گواهینامه های Let's Encrypt رایگان هستند اما باید به صورت دوره ای تمدید شوند. اگر Certbot به درستی پیکربندی نشده باشد، تمدید با شکست مواجه خواهد شد و ممکن است SSL منقضی شود.
1. بررسی گواهی های موجود
ابتدا بررسی کنید که چه گواهی هایی در سرور وجود دارد:
certbot certificates
این دستور نام گواهی، دامنه ها، مسیرهای فایل و تاریخ انقضا را نشان می دهد.
اگر دستور certbot وجود نداشته باشد ممکن است نصب نشود:
certbot --version
2. انجام Refresh Testing
برای آزمایش گواهی قبل از تمدید واقعی:
certbot renew --dry-run
این دستور فرآیند تازه سازی را آزمایش می کند. اگر خطایی وجود داشته باشد، به شما امکان می دهد قبل از روز تمدید واقعی مشکل را مشاهده کنید.
3. رایج ترین خطاهای Certbot
بیشتر خطاهای تمدید Let's Encrypt مربوط به اعتبارسنجی دامنه و دسترسی به وب سرور است.
- پاسخ نامعتبر: Let's Encrypt نمی تواند به فایل تأیید دسترسی پیدا کند.
- اتصال رد شد: پورت 80 یا 443 ممکن است بسته باشد.
- وقفه در حین اتصال: ممکن است دامنه به سرور هدایت نشود یا فایروال آن را مسدود کند.
- غیر مجاز: فایل تأیید دامنه ممکن است محتوای نادرستی را بازگرداند.
- گواهینامه های بسیار زیاد: ممکن است تلاشهای زیادی برای صدور گواهینامه انجام شده باشد.
4. بررسی مسیریابی IP دامنه
برای اینکه تمدید گواهی کار کند، دامنه باید به آدرس IP سرور صحیح هدایت شود.
dig domainadi.com +short
اگر دیگ نصب نشده باشد:
apt install dnsutils -y
در سیستم های مبتنی بر CentOS:
yum install bind-utils -y
IP بازگردانده شده توسط دامنه باید با آدرس IP سروری که SSL روی آن نصب می شود یکسان باشد.
5. بررسی پورت های 80 و 443
Let's Encrypt اغلب می خواهد به پورت 80 برای احراز هویت HTTP دسترسی پیدا کند. اگر پورت 80 بسته باشد، احراز هویت ممکن است با شکست مواجه شود.
ss -tulpn | grep -E ':80|:443'
اگر از فایروال استفاده می کنید، مطمئن شوید که پورت های 80 و 443 باز هستند.
برای UFW:
ufw allow 80/tcp ufw allow 443/tcp ufw reload
برای فایروال:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
6. تست پیکربندی Nginx یا Apache
اگر در فایل پیکربندی وب سرور خطایی وجود داشته باشد، ممکن است وب سرویس پس از بهروزرسانی certbot دوباره بارگیری نشود.
برای Nginx:
nginx -t
برای آپاچی:
apachectl configtest
اگر خطایی وجود ندارد، می توانید خدمات را دوباره نصب کنید:
systemctl reload nginx
یا:
systemctl reload apache2
7. تمدید دستی گواهی SSL
اگر همه بررسیها درست باشد، میتوانید بهروزرسانی را به صورت دستی اجرا کنید:
certbot renew
مثال Nginx اگر فقط نیاز به تأیید مجدد برای یک دامنه خاص دارید:
certbot --nginx -d domainadi.com -d www.domainadi.com
مثال آپاچی:
certbot --apache -d domainadi.com -d www.domainadi.com
8. بررسی Auto Refresh Scheduler
Certbot معمولاً با تایمر systemd یا cron بهروزرسانی خودکار میشود.
systemctl list-timers | grep certbot
برای بررسی وضعیت تایمر:
systemctl status certbot.timer
اگر تایمر خاموش است:
systemctl enable certbot.timer systemctl start certbot.timer
اشتباهات رایج
- تلاش برای دریافت SSL زمانی که آدرس IP دامنه اشتباه است
- پورت 80 را ببندید و منتظر بمانید تا احراز هویت HTTP کار کند
- بررسی نکردن ساختار احراز هویت زمانی که پراکسی Cloudflare روشن است
- اشتباه پیکربندی Nginx/Apache برای خطای certbot
- عدم آزمایش تمدید خودکار تا زمانی که SSL منقضی شود
سوالات متداول
اگر SSL منقضی شده باشد، آیا سایت به طور کامل خاموش می شود؟
ممکن است سایت از نظر فنی کار کند، اما مرورگر یک هشدار امنیتی نشان می دهد. این امر اعتماد مشتری را به طور جدی کاهش می دهد.
چرا تمدید Certbot با شکست مواجه می شود؟
معمولاً دامنه به IP اشتباه هدایت می شود، پورت 80/443 بسته است، پیکربندی وب سرور نادرست است یا فایل تأیید قابل دسترسی نیست.
آیا تمدید SSL هنگام استفاده از Cloudflare مشکل دارد؟
حالت SSL یا پیکربندی پروکسی نادرست ممکن است بر روند تأیید تأثیر بگذارد. روش تأیید دامنه باید بر این اساس انتخاب شود.
توصیه های ایمنی و عملیات
- به طور منظم تاریخ انقضای SSL را بررسی کنید.
- تست certbot renew --dry-run را به صورت دوره ای اجرا کنید.
- پورت های 80 و 443 را بی جهت نبندید.
- پس از تغییر پیکربندی وب سرور، nginx -t یا apachectl configtest را اجرا کنید.
- از نظارت بر SSL در دامنه هایی که از پنل های پرداخت و مشتری استفاده می کنند غافل نشوید.
این مقاله به طور ویژه برای PvPServer تهیه شده است.