یکی از خطاهای رایج بعد از نصب Let’s Encrypt در دایرکت ادمین خطای مربوط به دایرکتوری well-known/. است. ممکن از شما نیز بعد از نصب آن با خطای زیر مواجه شده باشید:
…Getting challenge for domain.com from acme-server
:Error
http://domain.com/.well-known/acme-challenge/letsencrypt_1472046285
.is not reachable. Aborting the script
.Please make sure /.well-known alias is setup in WWW server
ما در این آموزش قصد داریم شما را با شیوه دیباگ کردن این خطا آشنا سازیم تا با استرس کمتری سرور خود را کانفیگ کنید. علت اصلی مواجه شدن با این پیغام خطا تعریف نشدن alias برای دایرکتوری اصلی مربوط به پروتکل SSL با نام well-known. می باشد. با علم به این قضیه ابتدا باید یک alias برای آن تعریف کرده و سپس دایرکت ادمین و تنظیمات مربوط به آن را به روز رسانی کنید.
رفع خطا
برای رفع این مشکل مراحل زیر را دنبال کنید:
ابتدا فایل directadmin.conf را با یک ویرایشگر متن باز کنید:
1 |
[root@arshatech ~]# vim /usr/local/directadmin/conf/directadmin.conf |
سپس مقدار زیر را در آن وارد کنید و تغییرات را ذخیره و از فایل خارج شوید:
1 |
letsencrypt=1 |
در مرحله بعد با یک ویرایشگر متن فایل httpd-alias.conf را باز کنید:
1 |
[root@arshatech ~]# vim /etc/httpd/conf/extra/httpd-alias.conf |
سپس مقدار زیر را در آن وارد کنید:
1 |
Alias /.well-known |
سپس کافیست دستورات زیر را جهت اعمال تغییرات وارد کنید:
1 2 3 |
[root@arshatech ~]# cd /usr/local/directadmin/custombuild [root@arshatech custombuild]# ./build update [root@arshatech custombuild]# ./build rewrite_confs |
بعد از اتمام اجرای دستورات فوق خواهید دید که تغییرات بر روی فایل httpd-alias.conf اعمال شده اند.
حال برای اطمینان پیدا کردن از صحت کار انجام شده دستور زیر را در ترمینال وارد کنید:
1 |
[root@arshatech ]# echo "Lets Encrypt Enabled" >> /var/www/html/.well-known/acme-challenge/test.txt |
به دو صورت میتوان صحت محتویات فایل test.txt را بررسی کرد:
۱) استفاده از مرورگر: این روش به صورت دستی بوده و کافیست آدرس زیر را در مرورگر خود وارد کنید. در صورتی که عبارت !Lets Encrypt Enabled برای شما به نمایش در آمد یعنی کار به درستی انجام شده است.
1 |
http://domain.com/.well-known/acme-challenge/test.txt |
۲) استفاده از دستور curl: راه دیگر آن بررسی از طریق خط فرمان و دستور پرکاربرد curl است. کافیست دستور زیر را وارد کنید. در صورتی که کد ۲۰۰ برگردد یعنی کار به درستی انجام شده است:
1 |
[root@arshatech ]# curl -I -L -k -X GET http://domain.com/.well-known/acme-challenge/test.txt |
1 2 3 4 5 6 7 8 9 10 |
HTTP/1.1 200 OK ETag: "5-5b54aaa8-7a22ed6c465be2c1;;;" Last-Modified: Sun, 22 Jul 2018 16:02:48 GMT Content-Type: text/plain Content-Length: 5 Date: Sun, 22 Jul 2018 16:03:21 GMT Accept-Ranges: bytes Server: LiteSpeed Alt-Svc: quic=":443"; ma=2592000; v="35,37,38,39" Connection: Keep-Alive |
فراموش نکنید که در انتها فایل test.txt را حذف کنید:
1 |
[root@arshatech ]# rm /var/www/html/.well-known/acme-challenge/test.txt |