kinarA

جشنواره پايیزی آرانیک   15٪ تخفیف محصولات سرور مجازی کد تخفیف: N5U91RC9YR

ارتباط با ما

تهران، خیابان شیراز جنوبی، نبش کوچه یاس، پلاک 23 ، طبقه 3

88057080 - 021

aranik@aranik.net

ssl-on-apache-nginx

آموزش راه اندازی SSL (رایگان و خریداری شده) در لینوکس با وبسرور های Apache/Nginx

سرورها با استفاده از این فناوری می‌توانند ترافیک امنی را بین خود و کلاینت‌هایشان برقرار کنند. سیستم گواهیSSL نیز به کاربران کمک می‌کند که هویت سایتی که به آن وصل شده‌اند را تأیید کنند.
در این راهنما روش راه اندازی یک SSL به صورت رایگان و همچنین خریداری شده را برای استفاده از وب‌سرور Nginx و Apache روی سرور Ubuntu توضیح می‌دهیم.

پیشنیازها:
– دامنه ای که می خواهید مجوز SSL را روی آن نصب کنید به IP سرور شما متصل شده باشد.
– برای راه اندازی SSL تجاری ابتدا میبایست فایل مربوط به گواهی از پیش خریداری شده باشد. ایجاد فایل CSR

- گواهی رایگان

1- نصب Certbot

Certbot می تواند به طور خودکار گواهی را بر روی سرورهای وب nginx و Apache نصب کند. برای انجام این کار، باید یک بسته اضافی نصب کنید و بسته مناسب را برای وب سرور خود انتخاب کنید.

در Debian/Ubuntu:

				
					sudo apt update
				
			

برای Apache :

				
					sudo apt install certbot python3-certbot-apache
				
			

برای Nginx :

				
					sudo apt install certbot python3-certbot-nginx
				
			

در CentOS/RHEL:

				
					sudo yum install epel-release
				
			

برای Apache :

				
					sudo yum install certbot python3-certbot-apache
				
			

برای Nginx :

				
					sudo yum install certbot python3-certbot-nginx
				
			

2- دریافت و نصب گواهینامه SSL

Certbot به صورت خودکار پیکربندی Apache را انجام می‌دهد و گواهینامه‌های SSL را برای دامنه شما فعال می‌کند.

برای Apache :

				
					sudo certbot –apache
				
			

برای Nginx :

				
					sudo certbot –nginx
				
			

3- تنظیم خودکار تمدید گواهینامه

Let’s Encrypt گواهینامه‌های SSL را برای 90 روز صادر می‌کند، بنابراین باید تمدید خودکار آن را تنظیم کنید.یک کرون جاب برای Certbot اضافه کنید که هر روز اجرا شود.

برای Apache :

				
					sudo crontab -e
				
			

سپس خط زیر را اضافه کرده و فایل را ذخیره کنید.

				
					0 0 * * * /usr/bin/certbot renew –quiet
				
			

برای اطمینان از اینکه تمدید به درستی کار می‌کند، می‌توانید آن را به صورت دستی تست کنید:

				
					sudo certbot renew –dry-run
				
			

- گواهی از پیش خریداری شده

معمولاً شما سه فایل برای تنظیم نیاز دارید. البته لازم به ذکر است که در اکثر اوقات میتوان به دو فایل اول بسنده کرد.
کلید خصوصی (private key): این فایل را هنگام ایجاد CSR (درخواست گواهی) دریافت کرده‌اید. معمولاً با پسوند .key.
گواهینامه SSL (certificate): این فایل از ارائه‌دهنده گواهی به شما داده شده است و معمولاً با پسوند .crt یا .cer.
فایل زنجیره‌ای (chain) یا CA bundle: این فایل حاوی گواهینامه‌های میانی است و ممکن است توسط ارائه‌دهنده SSL به شما داده شود. معمولاً با پسوند .crt یا .pem.

پیکربندی در Apache

1- انتقال فایل‌های SSL

ابتدا فایل‌های کلید خصوصی، گواهینامه و زنجیره را به مسیر سرور (به عنوان مثال /etc/ssl/) کپی کنید:

				
					sudo cp your_domain.key /etc/ssl/private/
sudo cp your_domain.crt /etc/ssl/certs/ 
sudo cp your_domain_chain.crt /etc/ssl/certs/
				
			

2- پیکربندی Virtual Host

فایل پیکربندی Virtual Host مربوط به دامنه خود را ویرایش کنید. معمولاً این فایل در مسیر /etc/apache2/sites-available/ در Debian/Ubuntu و در مسیر /etc/httpd/conf.d/ در CentOS/RHEL قرار دارد.

یک Virtual Host برای پورت 443 (HTTPS) به شکل زیر تنظیم کنید:

				
					<VirtualHost *:443>
    ServerName your_domain.com
    DocumentRoot /var/www/html
    
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/your_domain.crt
    SSLCertificateKeyFile /etc/ssl/private/your_domain.key
    SSLCertificateChainFile /etc/ssl/certs/your_domain_chain.crt  

    <Directory /var/www/html>
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
				
			

3- فعال کردن SSL

برای فعال‌سازی SSL در Apache باید ماژول SSL را فعال کنید:

				
					sudo a2enmod ssl
				
			

سپس Virtual Host مربوط به SSL را فعال کنید:

				
					sudo a2ensite your_domain-ssl.conf
				
			

4- راه‌اندازی مجدد Apache

برای فعال‌سازی SSL در Apache باید ماژول SSL را فعال کنید:

				
					sudo systemctl restart apache2
				
			

پیکربندی در Nginx

1- انتقال فایل‌های SSL

ابتدا فایل‌های کلید خصوصی، گواهینامه و زنجیره را به مسیر سرور (به عنوان مثال /etc/ssl/) کپی کنید:

				
					sudo cp your_domain.key /etc/ssl/private/
sudo cp your_domain.crt /etc/ssl/certs/ 
sudo cp your_domain_chain.crt /etc/ssl/certs/
				
			

2- پیکربندی Virtual Host در Nginx

فایل پیکربندی دامنه خود را که معمولاً در مسیر /etc/nginx/sites-available/ قرار دارد ویرایش کنید.
تنظیمات SSL را به فایل اضافه کنید:

				
					server {
    listen 443 ssl;
    server_name your_domain.com;

    ssl_certificate /etc/nginx/ssl/your_domain.crt;
    ssl_certificate_key /etc/nginx/ssl/your_domain.key;
    ssl_trusted_certificate /etc/nginx/ssl/your_domain_chain.crt; 

    root /var/www/html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
}
				
			

3- راه‌اندازی مجدد Nginx

				
					sudo systemctl restart nginx
				
			

نکات نهایی:

فایل‌های کلید خصوصی را به طور ایمن نگهدارید و اطمینان حاصل کنید که فقط کاربرانی که نیاز دارند به آن دسترسی داشته باشند.
در صورت هر گونه مشکل در راه‌اندازی، لاگ‌های وب‌سرور خود (مانند /var/log/apache2/error.log یا /var/log/nginx/error.log) را بررسی کنید.

دیدگاهتان را بنویسید

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