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

گواهینامه SSL

نصب گواهینامه امنیتی SSL/TLS برای تأمین امنیت وب‌سایت امری ضروری است. در این آموزش نصب SSL رایگان در آپاچی و همچنین روش نصب دستی آن بر روی سیستم‌عامل اوبونتو (و توزیع‌های مشابه مانند دبیان) می‌پردازیم. این دستورالعمل‌ها هم برای نصب ssl روی سرور مجازی (VPS) و هم سرویس میزبانی اختصاصی کاربرد دارد.

بخش اول: نصب دستی گواهینامه SSL پولی (روش سنتی)

این روش برای نصب گواهینامه ssl که به صورت پولی از یک مرجع صدور (CA) خریداری شده، کاربرد دارد.

تولید CSR و ذخیره فایل‌ها

برای نصب SSL بروی سرور مجازی Ubuntu جهت استفاده در وب سرور Apache، در ابتدا شما باید فایل CSR (Certificate Signing Request) گواهینامه خود را تولید و برای مرجع صدور (Certificate Authority) ارسال نمایید تا این گواهینامه تولید شود و فایل‌های CRT و یا PEM را به همراه Private Key در اختیار شما قرار دهند.

سپس باید فایل‌های CRT و Private Key را در محلی امن بروی سرور خود ذخیره فرمایید (محل پیشنهادی /etc/apache2/ssl). که برای ایجاد دایرکتوری فوق می‌توانید از دستور زیر استفاده کنید:

 mkdir -p /etc/apache2/ssl 

سپس فایل‌ها را با دستور زیر به این دایرکتوری منتقل کنید:

 mv cert.crt /etc/apache2/ssl 
mv cert.key /etc/apache2/ssl 
نصب گواهینامه SSL روی وب سرور آپاچی

 

پیکربندی Virtual Host آپاچی

پس از ذخیره فایل‌ها، باید پیکربندی وب سرور آپاچی را به‌روزرسانی کنید. با دستور cd به محل فایل‌های Config وب سرور خود جابجا شوید:

 cd /etc/apache2/sites-available 

در این دایرکتوری هر فایلی نشان‌گر یک VirtualHost در وب سرور شما می‌باشد که هر کدام نشانگر یک وب‌سایت بروی این وب سرور می‌باشند. به صورت معمولا پیش‌فرض دو فایل زیر در وب سرور apache وجود دارد: 000-default.conf و ssl-default.conf که این دو فایل نشانگر وب‌سایت پیش‌فرض با پروتکل‌های HTTP و HTTPS می‌باشند.

شما باید برای استفاده از SSL دریافتی خود، فایل ssl-default.conf را ادیت کنید. در صورت وجود فایل‌های دیگر مثل example.conf که نشانگر وب‌سایتی با دامنه Example می‌باشد، باید جهت استفاده SSL در آن وب‌سایت، فایل مذکور را ادیت کنید:

 vi /etc/apache2/sites-available/example.conf 

برای ورود به Insert Mode در برنامه vi پس از باز شدن فایل دکمه‌ی i را فشار دهید.

در فایل example.conf و یا ssl-default.conf اطلاعات زیر را باید وارد کنید (یا به‌روزرسانی کنید). دقت کنید که پورت فایل Config وب‌سایتی که شما می‌خواهید از طریق SSL رمزنگاری شود، باید 443 باشد:

<VirtualHost *:443>

DocumentRoot /var/www/html/example

ServerName www.example.com

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/cert.crt

SSLCertificateKeyFile /etc/apache2/ssl/cert.key

#در صورت داشتن فایل زنجیره (سی ای باندل)،هشتگ ابتدای خط را حذف کرده و مسیر آن را تصحیح کنید:
#SSLCertificateChainFile /etc/apache2/ssl/ca_bundle.crt

</VirtualHost>

پس از ایجاد تغییرات برای ذخیره و خروج، دکمه‌ی esc را فشار دهید و سپس :wq را تایپ کنید.

  • *:443: نشانگر Interface ای است که شما می‌خواهید بروی آن سرویس وب ارائه دهید.
  • DocumentRoot: نشانگر مسیر فایل‌ها و کدهای وب‌سایت شما می‌باشد.
  • ServerName: نام کامل وب‌سایت شما.
  • SSLEngine: وضعیت استفاده از SSL.
  • SSLCertificateFile: مسیر فایل cert.crt.
  • SSLCertificateKeyFile: مسیر فایل Private Key.

توجه فرمایید که این دستورات باید بین <VirtualHost *:443> و </VirtualHost> قرار گیرند.

فعال‌سازی و راه‌اندازی مجدد

پس از تغییر فایل‌های Config جهت فعال‌سازی SSL بروی Apache، از دستور زیر استفاده کنید:

 a2enmod ssl 

سپس Virtual Host جدید یا به‌روز شده را فعال کنید:

 a2ensite example.com.conf 

حالا پیکربندی را بررسی کنید:

 apache2ctl configtest 

و در نهایت سرویس Apache را مجددا راه‌اندازی کنید:

 systemctl restart apache2 

حالا شما می‌توانید از طریق پروتکل HTTPS وب‌سایت خود را بررسی نمایید: https://example.com

آموزش نصب ssl رایگان

بخش دوم: نصب SSL رایگان با Certbot

امروزه بهترین روش نصب ssl رایگان در آپاچی و انجینکس، استفاده از Certbot است که گواهینامه‌های Let's Encrypt را به صورت خودکار نصب و تمدید می‌کند.

نصب Certbot در اوبونتو

ابتدا Certbot را بر روی سیستم‌عامل اوبونتو نصب کنید.

 sudo apt update sudo apt install certbot python3-certbot-apache 

نصب SSL رایگان در آپاچی

با اجرای دستور زیر، Certbot به صورت خودکار گواهینامه را دریافت، نصب و پیکربندی‌های لازم را در Virtual Host آپاچی اعمال می‌کند:

 sudo certbot --apache -d yourdomain.com -d www.yourdomain.com  

نصب SSL در انجینکس (Nginx)

برای نصب ssl رایگان روی nginx در دبیان یا اوبونتو، ابتدا پلاگین انجینکس را نصب کنید:

 sudo apt install python3-certbot-nginx 

سپس دستور زیر را اجرا کنید. Certbot به صورت خودکار Server Block انجینکس را ویرایش می‌کند:

 sudo certbot --nginx -d yourdomain.com -d  

بخش سوم: گواهی SSL لوکال هاست و انواع خطا

ساخت SSL در localhost برای توسعه

برای محیط‌های توسعه، نیازی به نصب گواهینامه SSL معتبر ندارید. می‌توانید با استفاده از OpenSSL یک گواهی ssl لوکال هاست (Self-Signed) برای ایجاد ssl در لوکال بسازید.

با استفاده از دستور زیر می‌توانید یک گواهینامه خودامضا برای ساخت ssl در localhost تولید کنید:

 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt 

پس از تولید فایل‌های localhost.key و localhost.crt، آن‌ها را مانند روش‌های دستی فوق در پیکربندی وب سرور خود وارد کنید.

خطاهای متداول گواهینامه SSL

انواع خطای SSL متداول

پس از نصب گواهینامه ssl ممکن است با انواع خطای ssl مواجه شوید. برخی از متداول‌ترین آن‌ها عبارتند از:

  • NET::ERR_CERT_DATE_INVALID: تاریخ انقضای گواهینامه گذشته است. این تاثیر ممکن است به دلیل عدم تنظیم تمدید خودکار (برای Let's Encrypt) یا فراموشی تمدید باشد.
  • NET::ERR_CERT_AUTHORITY_INVALID: مرورگر به مرجع صادرکننده گواهینامه اعتماد ندارد. این معمولا در گواهینامه‌های خودامضا (Localhost) یا در صورتی که فایل CA Bundle به درستی نصب نشده باشد، رخ می‌دهد.
  • SSL Handshake Failed: سرور و مرورگر نمی‌توانند بر سر یک پروتکل رمزنگاری (مانند TLS 1.2 یا 1.3) به توافق برسند. این عملا به این معنی است که تنظیمات امنیتی سرور شما قدیمی است. این مورد در هنگام خرید سرویس‌های میزبانی اختصاصی و عدم آپدیت آن‌ها رخ می‌دهد و صرفا با یک آپدیت سیستم عامل و نرم‌افزارهای سرور، مشکل مرتفع می‌گردد.
  • Mixed Content: این خطا امنیتی نیست، اما نشان می‌دهد که وب‌سایت شما با وجود استفاده از HTTPS، هنوز برخی منابع (تصاویر، CSS و…) را از طریق HTTP بارگذاری می‌کند که باید به HTTPS تغییر داده شوند.

Certbot: ابزار تمدید و نصب گواهینامه رایگان

امروزه، روش‌های سنتی دریافت و نصب گواهینامه‌های SSL پولی جای خود را به ابزارهای خودکار و گواهینامه‌های رایگان داده‌اند. Certbot یک ابزار بسیار کاربردی است که توسط بنیاد EFF توسعه یافته و به شما امکان می‌دهد گواهینامه‌های رایگان Let's Encrypt را به صورت خودکار دریافت، نصب و تمدید کنید. این روش نه تنها هزینه‌ها را حذف می‌کند، بلکه فرآیند تمدید گواهینامه را نیز ساده‌تر می‌سازد و از خطای انقضای ناگهانی جلوگیری می‌کند. این ابزار از پلاگین‌های خاصی برای وب سرورهای مختلف مانند آپاچی و انجینکس استفاده می‌کند تا تنظیمات پیکربندی لازم برای فعال‌سازی HTTPS را به صورت هوشمند اعمال کند.

اهمیت HTTPS و برخورد با خطاهای امنیتی

فعال‌سازی HTTPS با نصب گواهینامه امنیتی SSL/TLS یک ضرورت امنیتی است، اما تاثیر مهمی در اعتبار وب‌سایت در نزد کاربران و موتورهای جستجو دارد. مرورگرهای مدرن هنگام اتصال به سایت‌هایی که فاقد SSL هستند، هشدار «Not Secure» نمایش می‌دهند که می‌تواند باعث کاهش اعتماد کاربران شود. پس از نصب، ممکن است با خطاهای امنیتی مانند خطای انقضای تاریخ (Date Invalid) یا خطای زنجیره اعتماد (Authority Invalid) روبرو شوید. معمولا خطاهای مربوط به زنجیره اعتماد به دلیل نصب نکردن فایل‌های واسط (CA Bundle) رخ می‌دهند، در حالی که خطاهای تاریخ نشان می‌دهند که گواهینامه منقضی شده و نیاز به تمدید دارد.

SSL خودامضا برای محیط‌های توسعه (Localhost)

برای توسعه‌دهندگانی که نیاز دارند اپلیکیشن‌های خود را قبل از استقرار بر روی سرور، در محیط محلی با HTTPS تست کنند، نیازی به نصب گواهینامه SSL معتبر و پولی نیست. در این شرایط، می‌توان از گواهینامه‌های خودامضا (Self-Signed) برای محیط لوکال استفاده کرد. این گواهینامه‌ها توسط خود شما صادر می‌شوند و اگرچه مرورگرها به آنها اعتماد نمی‌کنند و هشدار امنیتی نمایش می‌دهند، اما به شما این امکان را می‌دهند که محیط توسعه خود را شبیه‌سازی کنید. استفاده از ابزارهایی مانند OpenSSL فرآیند ایجاد کلید خصوصی و عمومی مورد نیاز را تسهیل می‌کند تا بتوانید به سرعت فایل‌های مورد نیاز را تولید و در پیکربندی لوکال هاست خود وارد کنید.

سوالات متداول

01آیا می‌توانم از Certbot برای نصب گواهینامه SSL روی سرور مجازی و سرویس میزبانی اختصاصی استفاده کنم؟

بله، Certbot یک ابزار ایده‌آل برای نصب SSL روی سرور مجازی (VPS) و سرویس میزبانی اختصاصی است، به شرطی که شما دسترسی سطح روت (Root) یا امتیاز sudo برای نصب نرم‌افزار و تغییر پیکربندی‌های وب سرور (آپاچی یا انجینکس) را داشته باشید.

 

02Certbot چطور گواهینامه‌های Let's Encrypt را تمدید می‌کند؟

Certbot فرآیند تمدید را به صورت کاملاً خودکار انجام می‌دهد. هنگام نصب، Certbot یک Cron Job یا یک تایمر Systemd را در سرور شما (معمولا اوبونتو) تنظیم می‌کند که به صورت دوره‌ای اجرا شده و بررسی می‌کند که آیا گواهینامه‌های شما در شرف انقضا هستند یا خیر. گواهینامه‌های Let’s Encrypt هر ۹۰ روز یکبار صادر می‌شوند و Certbot قبل از انقضا (مثلا ۳۰ روز مانده به انقضا) آنها را تمدید می‌کند.

 

03آیا برای نصب گواهینامه SSL حتما باید از پورت ۴۴۳ استفاده کنم؟

بله، پورت 443 استاندارد جهانی برای ترافیک رمزنگاری شده HTTPS است. برای اینکه مرورگرها بتوانند به صورت امن به وب‌سایت شما متصل شوند، باید Virtual Host (در آپاچی) یا Server Block (در انجینکس) شما برای گوش دادن به پورت ۴۴۳ پیکربندی شده باشد.

 

04آیا نصب cpanel روی اوبونتو بر فرآیند نصب SSL تأثیر می‌گذارد؟

اگر از پنل‌های مدیریتی مانند cPanel یا Plesk استفاده می‌کنید، معمولا این پنل‌ها دارای رابط کاربری و ابزارهای خودکار داخلی برای نصب گواهینامه‌های SSL (از جمله Let’s Encrypt) هستند. در این حالت، بهتر است از طریق رابط پنل مدیریتی اقدام کنید و نه از طریق خط فرمان، زیرا پنل مدیریتی تمام پیکربندی‌ها را به صورت خودکار مدیریت می‌کند.

نظرات کاربران

شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.

logo
ثبت نام ناحیه کاربری ارسال تیکت راهنمای خرید
ناحیه کاربری
ثبت نامناحیه کاربریداشبورد ابریارسال تیکتتماس تلفنی
تماس با ما
مشاوره تلفنی 1779 | 79625000
واحد مارکتینگ داخلی 1
واحد مشتریان داخلی 2
مالی و اداری داخلی 3
منابع انسانی داخلی 4