یکی از نیازمندیهای امنیتی ارتباط با سرورها گواهی SSL است. SSL دادههای بین وبسرور و مرورگر را برای اطمینان از امنیت اطلاعات رمزنگاری میکند. در این راهنما روش نصب گواهی SSL روی وبسرورهای رایجی مانند Apache و Nginx را بررسی خواهیم کرد.
پیشنیازها
-
فایلهای گواهی SSL
این فایلها معمولن توسط CAها صادر میشوند. اگر گواهیای برای دامنهتان صادر نکردهاید، میتوانید برای دریافت گواهی SSL از استفاده کنید.
-
فایل گواهینامه با فرمت 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