یکی از نیازمندیهای امنیتی ارتباط با سرورها گواهی 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