نحوه نصب گواهینامه SSL روی NGINX

نحوه نصب گواهینامه SSL روی NGINX

برای نصب گواهینامه SSL بروی این مدل وب سرور می بایست حتما اقدام به باندل کردن فایل گواهینامه با فایل CAbundle بنمایید از دستور زیر می توانید استفاده کنید

download

> cat domain_com.crt domain_com.ca-bundle > ssl-bundle.crt

فایل ایجاد شده را در یک مکان مناسب ذخیره نمایید بشکل زیر

> mkdir -p /etc/nginx/ssl/example_com/

mv ssl-bundle.crt /etc/nginx/ssl/example_com/

همچنین فایل private key را نیز در پوشه جداگانه ذخیره نمایید

> mv example_com.key /etc/nginx/ssl/example_com/

توجه کنید قسمت های تنظیمات فایل nginx config به مسیر دقیق فایل اشاره داشته باشد

اگر از گواهینامه SSL وایلد کارد و یا مولتی دامنه استفاده می کنید توجه کنید که حتما می بایست برای تک تک ساب دامن ها اقدام به مسیردهی فایل بنمایید

برای بیشتر شدن سرعت ارتباط ssl می توانید پروتکل زیر را فعال کنید OCSP Stapling

البته این موضوع بسیار دلبخواه می باشد اما سرعت ارتباطات بالا خواهد رفت

OCSP Stapling
resolver 127.0.0.1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate <file>;
بعد از انجام مراحل فوق با دستور زیر درست بودن تنظیمات را چک کنید

sudo nginx -t -c /etc/nginx/nginx.conf

سرور را می توانید با دستور زیر ریستارت کنید

sudo /etc/init.d/nginx restart

در زیر نمونه فایل تنظیمات اورده شده است

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
    ssl_certificate /path/to/signed_cert_plus_root_plus_intermediates;
    ssl_certificate_key /path/to/private_key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
    ssl_dhparam /path/to/dhparam.pem;

    # intermediate configuration.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;

    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

    ## verify chain of trust of OCSP response using Root CA and Intermediate certs
    ssl_trusted_certificate /path/to/root_CA_cert_plus_root_plus_intermediates;

    resolver <IP DNS resolver>;

    ....
}
حال گواهی SSL روی سایت شما نصب شده است