نحوه کانفیگ HTTPS در وب سرور انجینیکس | Nginx HTTPS Server

 نحوه کانفیگ HTTPS در وب سرور انجینیکس | Nginx HTTPS Server

نقطه صفر…

 

برای فعالسازی HTTPS روی وب سرور انجینکس باید پارامتر SSL رو داخل کانفیگ قرار بدیم تا فعال بشه.

علاوه بر اضافه کردن پارامتر SSL ما نیاز به یک گواهینامه SSL هم داریم که توی مقاله دیگه تحت عنوان نحوه دریافت SSL رایگان آموزش دادیم 🙂

خب بریم سراغ کانفیگ…

server {
    listen              443 ssl;
    server_name         www.dailynginx.ir dailynginx.ir;
    ssl_certificate     /path/fullchain.pem;
    ssl_certificate_key /path/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}

 

همونطور که می‌بینید پارامتر ssl رو توی بلاک سرور در قسمت خصوصیت listen قرار دادیم و دوتا خصوصیت دیگه هم اینجا وجود داره به نام‌های:

ssl_certificate
ssl_certificate_key

حالا آدرس فایل گواهینامه‌هایی که دریافت کردیم در مراحل قبل رو به این خصوصیات پاس میدیم.

به این شکل:

ssl_certificate     /path/fullchian.pem;
ssl_certificate_key /path/privkey.pem;

  • دقت کنید که به جای /path/ باید مسیری که فایل‌ها در درونش قرار داره رو بنویسید.

حالا وب سرورتون رو ری استارت کنید.

خب تبریک میگم، وب سرور شما الان میتونه ریکوئست‌هایی که تحت https میاد رو بدون نمایش خطای امنیتی دریافت کنه و ریسپانس بده 🙂

اما هنوز یه مرحله دیگه مونده، اونم اینکه حالا که https فعال هستش ما دیگه نباید درخواست‌های http رو ریسپانس بدیم، پس باید هرچیزی که تحت http ارسال میشه رو بفرستیم به سمت https، چطوری؟ به شکل زیر:

server {
        listen 80;
        server_name www.dailynginx.ir dailynginx.ir;
        return 301 https://$host$request_uri;
}

اینجا تعریف کردیم که اگر هردرخواستی روی پورت ۸۰ برای ما ارسال شد اون درخواست رو بگیر و ریدایرکتش کن به https، به همین راحتی 🙂
پس کانفیگ ما به این شکل شد:

server {
        listen 80;
        server_name www.dailynginx.ir dailynginx.ir;
        return 301 https://$host$request_uri;
}
server {
    listen              443 ssl;
    server_name         www.dailynginx.ir dailynginx.ir;
    ssl_certificate     /path/fullchain.pem;
    ssl_certificate_key /path/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    location / {
        return 200 'Hello, HTTPS!';
        add_header Content-Type text/plain;
    }
}

امیدوارم که مفید واقع شه :دی، همچنین اگر دیگربخش‌های مرتبط با این مقاله منتشر شوند، لینک آن در این مقاله نیز قرارگرفته و بروز رسانی می‌شود.

پرهام افکار

https://ParhamAfkar.Ir

یه برنامه نویس پیر و خسته که به دنبال اتصال همه چیز به همه :)

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *