تنظیم کردن ssl روی nginx با certbot در زمان قطعی اینترنت

تنظیم کردن ssl روی nginx با certbot در زمان قطعی اینترنت
تنظیم کردن ssl روی nginx با certbot در زمان قطعی اینترنت

تنظیم کردن ssl روی nginx با certbot در زمان قطعی اینترنت

در این نوشته با روش DNS-01 قصد داریم روش اضافه کردن ssl با کمک lets encrypt را به شما آموزش دهیم. در این روش ما در یک دستگاه لوکال که به اینترنت بین الملل متصل است نیاز داریم تا بعد از تولید ssl آن را به سروری که به دلیل قطع اینترنت دسترسی به اینترنت بین‌الملل ندارد را منتقل کنیم.

 

تنظیم کردن ssl با روش DNS-01 روی nginx با certbot

ابتدا روی سیستم خود که اینترنت دارد پکیج acme.sh را نصب کنید. سپس برای بررسی اینکه آیا acme.sh نصب شده است از دستور زیر استفاده کنید:

acme.sh --version

سپس ایمیل خود را روی acme.sh ست کنید:

acme.sh --register-account -m info@test.ir

سپس مشخص کنید که گواهی ssl جدیدی که می‌خواهید از نوع letsencrypt باشد:

acme.sh --set-default-ca --server letsencrypt

سپس درخواست ایجاد dns برای ssl خود را بدهید:

acme.sh --issue --dns -d test.ir -d www.test.ir --yes-I-know-dns-manual-mode-enough-go-ahead-please --debug

پس از اجرای دستور بالا خروجی این دستور دو رکورد txt به شما می‌دهد با عنوان _acme-challenge.test.ir و _acme-challenge.www.test.ir که باید روی dns server خود ست کنید. سپس برای اطمینان از ست شدن این دو رکورد txt پس از ۵ دقیقه این دو دستور را اجرا کنید:

dig TXT _acme-challenge.test.ir
dig TXT _acme-challenge.www.test.ir

بعد از موفقیت آمیز بودن مراحل بالا برای verify کردن از کد زیر استفاده کنید:

acme.sh --renew --force -d test.ir --yes-I-know-dns-manual-mode-enough-go-ahead-please

سپس وارد مسیر زیر شوید و صحت ساخت کلیدها را مطمئن شوید:

cd /Users/my_user/.acme.sh/test.ir_ecc/

در دستور بالا my_user اسم کاربر شما در سیستم لوکال شما می‌باشد و test.ir با توجه به دامنه‌ی شما است.

پس از موفقیت آمیز بودن مراحل بالا حالا باید کلیدها را به سرور خود منتقل کنید:

scp -i privatekey.pem ~/.acme.sh/test.ir_ecc/fullchain.cer ~/.acme.sh/test.ir_ecc/test.ir.key root@ipserver:~/
ssh -i privatekey.pem root@ipserver "sudo mv ~/fullchain.cer ~/test.ir.key /etc/ssl/test/"

حالا کافیست کد مربوط به کانفیگ nginx را ویرایش کنید:

server {
    listen 443 ssl;
    server_name test.ir www.test.ir;

    ssl_certificate /etc/ssl/test/fullchain.cer;
    ssl_certificate_key /etc/ssl/test/test.ir.key;

    ssl_protocols TLSv1.2 TLSv1.3;

    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

و در مرحله‌ی آخر nginx را ریست کنید:

sudo systemctl reload nginx

پایان.!

اگر سوالی دارید در بخش نظرات این نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]