یکی از نیازمندی‌های امنیتی ارتباط با سرورها گواهی SSL است. SSL داده‌های بین وب‌سرور و مرورگر را برای اطمینان از امنیت اطلاعات رمزنگاری می‌کند. در این راهنما روش‌ نصب گواهی SSL روی وب‌سرورهای رایجی مانند Apache و Nginx را بررسی خواهیم کرد.

پیش‌نیازها

  • فایل‌های گواهی SSL

    این فایل‌ها معمولن توسط CAها صادر می‌شوند. اگر گواهی‌ای برای دامنه‌تان صادر نکرده‌اید، می‌توانید برای دریافت گواهی SSL از قابلیت گواهی‌نامه سرور اصلی CDN آروان‌کلاد استفاده کنید.

    • فایل گواهی‌نامه با فرمت crt.

    • کلید خصوصی با فرمت key.

  • دسترسی root یا sudo به سرور

  • وب‌سرور Nginx یا Apache

نصب گواهی SSL روی Apache

برای نصب گواهی SSL روی Apache گام‌های زیر را بردارید:

گام نخست: آپلود فایل‌های SSL در سرور

فایل‌های گواهی را در یک دایرکتوری در سرورتان قرار دهید. یکی از مسیر‌های رایج /etc/ssl/ یا /etc/ssl/certs/ است.

برای نمونه:

/etc/ssl/certs/your_domain_name.crt
/etc/ssl/private/your_domain_name.key

گام دوم: پیکربندی Apache برای استفاده از SSL

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

sudo a2enmod ssl

آپاچی از یک پیکربندی پیش‌فرض برای SSL استفاده می‌کند که در توزیع‌های Debian/Ubuntu در مسیر etc/apache2/sites-available/default-ssl.conf/ و در توزیع‌های RedHat/CentOS در مسیر etc/httpd/conf.d/ssl.conf/ قرار دارد. اگر این پیکربندی فعال نبود با دستور زیر آن را فعال کنید:

sudo a2ensite default-ssl.conf

فایل پیکربندی SSL را با یک ویرایش‌گر متن دل‌خواه باز کنید:

sudo nano /etc/apache2/sites-available/default-ssl.conf

خط‌های زیر را به این شکل تغییر دهید:

SSLCertificateFile      /etc/ssl/certs/your_domain_name.crt
SSLCertificateKeyFile   /etc/ssl/private/your_domain_name.key

برای اعمال تغییرات، آپاچی را دوباره راه‌اندازی کنید:

sudo systemctl restart apache2

برای بررسی صحت تنظیمات SSL از دستور زیر استفاده کنید:

sudo apache2ctl configtest

نصب گواهی SSL روی Nginx

گام نخست: آپلود فایل‌های SSL در سرور

فایل‌های گواهی را در یک دایرکتوری در سرورتان قرار دهید. یکی از مسیر‌های رایج /etc/ssl/ یا /etc/nginx/ssl/ است.

برای نمونه:

/etc/nginx/ssl/your_domain_name.crt
/etc/nginx/ssl/your_domain_name.key

گام دوم: پیکربندی Nginx برای استفاده از SSL

فایل پیکربندی بلوک سرور دامنه را باز کنید. این فایل معمولن در مسیر /etc/nginx/sites-available/ یا /etc/nginx/conf.d/ قرار دارد.

sudo nano /etc/nginx/sites-available/your_domain.com

تنظیمات زیر را به فایل اضافه کنید:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com;

    # Redirect HTTP to HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name your_domain.com www.your_domain.com;

    ssl_certificate /etc/nginx/ssl/your_domain_name.crt;
    ssl_certificate_key /etc/nginx/ssl/your_domain_name.key;

    # Optional SSL configuration for better security
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;

    # Other server configurations
    location / {
        try_files $uri $uri/ =404;
    }
}

توجه داشته باشید که باید مسیرهای درست فایل‌های گواهی را در این تنظیمات قرار دهید:

  • ssl_certificate: مسیر فایل گواهی با فرمت crt.

  • ssl_certificate_key: مسیر فایل کلید خصوصی با فرمت key.

سپس فایل را ذخیره کرده و ببندید.

با دستور زیر تنظیمات را بررسی کنید تا خطایی وجود نداشته باشد:

sudo nginx -t

برای اعمال تغییرات، Nginx را دوباره راه‌اندازی کنید:

sudo systemctl restart nginx