دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
گواهینامه SSL
  • Folder icon closed Folder open iconآموزش نصب SSL رایگان Let’s encrypt در cPanel
  • Folder icon closed Folder open iconآموزش نصب SSL رایگان در Plesk
  • Folder icon closed Folder open iconپاک کردن کش SSL از تنظیمات ویندوز
  • Folder icon closed Folder open iconنصب گواهینامه SSL بر روی hostname دایرکت ادمین
  • Folder icon closed Folder open iconآموزش نصب SSL با Certbot در لینوکس
  • Folder icon closed Folder open iconآموزش نصب SSL در IIS؛ فعال‌سازی HTTPS در ویندوز سرور
  • Folder icon closed Folder open iconآموزش نصب SSL رایگان در دایرکت ادمین با Let’s Encrypt
گواهینامه SSL

آموزش نصب SSL با Certbot در لینوکس

نصب SSL با Certbot

مقدمه

فعال‌سازی SSL یکی از مهم‌ ترین مراحل راه‌اندازی و ایمن‌ سازی یک وب‌سایت است. با نصب گواهی SSL، ارتباط میان مرورگر کاربران و وب‌ سرور رمزنگاری شده و سایت به‌ جای HTTP از طریق پروتکل HTTPS در دسترس قرار می‌گیرد.

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

در این مقاله، نحوه نصب Certbot و فعال‌سازی SSL روی وب‌ سرورهای Nginx و Apache را مرحله‌ به‌ مرحله بررسی می‌کنیم.

نکته) در تمام دستورات، دامنه example.com و www.example.com را با دامنه واقعی خود جایگزین کنید.


SSL چیست و چرا باید آن را فعال کنیم؟

SSL یا Secure Sockets Layer فناوری‌ ای برای رمزنگاری ارتباط میان کاربر و سرور است. امروزه در عمل از پروتکل جدیدتر TLS استفاده می‌شود، اما اصطلاح SSL همچنان برای گواهی‌ های امنیتی وب‌سایت‌ها رایج است.

پس از نصب SSL، آدرس سایت به شکل زیر تغییر می‌کند:

https://example.com

فعال‌سازی SSL مزایای زیر را دارد:

  • رمزنگاری اطلاعات کاربران
  • محافظت از اطلاعات ورود و فرم‌ها
  • جلوگیری از نمایش هشدار Not Secure
  • افزایش اعتماد کاربران
  • فراهم شدن امکان استفاده از پروتکل HTTPS
  • بهبود وضعیت امنیتی وب‌ سایت

Certbot چیست؟

Certbot یک ابزار خط فرمان رایگان و متن‌ باز است که برای دریافت و مدیریت گواهی‌ های SSL از Let’s Encrypt استفاده می‌شود.

این ابزار می‌تواند:

  • مالکیت دامنه را بررسی کند.
  • گواهی SSL رایگان دریافت کند.
  • تنظیمات Nginx یا Apache را تغییر دهد.
  • درخواست‌های HTTP را به HTTPS منتقل کند.
  • گواهی‌های نصب‌شده را نمایش دهد.
  • تمدید گواهی را به‌صورت خودکار انجام دهد.

پلاگین‌های Nginx و Apache در Certbot می‌توانند گواهی را دریافت کرده و تنظیمات HTTPS را به‌صورت خودکار روی وب‌سرور اعمال کنند.

what is certbot

پیش‌نیازهای نصب SSL با Certbot

قبل از اجرای Certbot، باید چند مورد را در سرور و تنظیمات دامنه بررسی کنید.

نصب Certbot بر روی سرور

نحوه نصب Certbot بستگی به توزیع لینوکس شما دارد. در اکثر موارد، اگر از Ubuntu یا AlmaLinux استفاده می‌کنید، به صورت زیر است.

Ubuntu

ابتدا مخازن را به‌ روز رسانی کنید:

sudo apt update

اگر از Nginx استفاده می‌کنید:

sudo apt install certbot python3-certbot-nginx -y

اگر از Apache استفاده می‌کنید:

sudo apt install certbot python3-certbot-apache -y

AlmaLinux

اگر از Nginx استفاده می‌کنید:

sudo dnf install epel-release -y
sudo dnf install certbot python3-certbot-nginx -y

اگر از Apache استفاده می‌کنید:

sudo dnf install epel-release -y
sudo dnf install certbot python3-certbot-apache -y

اتصال دامنه به سرور

رکورد DNS دامنه باید به IP عمومی همان سروری اشاره کند که وب‌ سایت روی آن قرار دارد.
برای بررسی IP دامنه می‌توانید از دستور زیر استفاده کنید:

dig +short example.com

برای دامنه www نیز دستور زیر را اجرا کنید:

dig +short www.example.com

IP نمایش‌ داده‌ شده باید با IP عمومی سرور یکسان باشد.
اگر فقط دامنه اصلی به سرور متصل شده است، هنگام اجرای Certbot نباید دامنه www را در دستور وارد کنید.

دسترسی Root یا Sudo

برای نصب Certbot و تغییر تنظیمات وب‌ سرور باید از طریق SSH به سرور متصل شوید و دسترسی root یا sudo داشته باشید.

فعال بودن وب‌سایت روی HTTP

قبل از نصب گواهی، سایت باید از طریق آدرس HTTP باز شود:

http://example.com

Certbot برای بررسی مالکیت دامنه باید بتواند از طریق پورت ۸۰ به وب‌ سایت دسترسی داشته باشد.

باز بودن پورت‌ های ۸۰ و ۴۴۳

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

پورتکاربرد
80ارتباط HTTP و اعتبارسنجی دامنه
443ارتباط HTTPS

به منظور باز کردن پورت های ذکر شده در فایروال سرور می‌توانید مقاله های زیر را مطالعه بفرمایید.

  • آموزش کامل UFW در لینوکس؛ راه‌اندازی، مدیریت و ایمن‌سازی فایروال سرور
  • آموزش کامل Firewalld در لینوکس
  • آموزش کامل ConfigServer Security & Firewall (CSF)

نصب SSL با Certbot روی Nginx

اگر سایت شما با Nginx اجرا می‌شود، Certbot می‌تواند دامنه را بررسی کرده، گواهی را دریافت کند و تنظیمات HTTPS را به‌ صورت خودکار داخل Server Block قرار دهد.

بررسی وضعیت Nginx

ابتدا مطمئن شوید سرویس Nginx فعال است:

sudo systemctl status nginx

اگر سرویس متوقف است، آن را اجرا کنید:

sudo systemctl start nginx

برای فعال شدن خودکار Nginx بعد از راه‌اندازی مجدد سرور:

sudo systemctl enable nginx

بررسی Server Block دامنه

Certbot دامنه را از طریق مقدار server_name در تنظیمات Nginx شناسایی می‌کند.
فایل تنظیمات سایت را باز کنید:

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

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

server { 
   listen 80; 
   listen [::]:80; 
   server_name example.com www.example.com; 

   root /var/www/example.com; 
   index index.html index.php; 
}

اگر از دامنه www استفاده نمی‌کنید، مقدار آن را از server_name حذف کنید:

server_name example.com;

پس از ذخیره تنظیمات، صحت فایل‌های Nginx را بررسی کنید:

sudo nginx -t

خروجی صحیح باید مشابه زیر باشد:

syntax is ok
test is successful

سپس Nginx را Reload کنید:

sudo systemctl reload nginx

دریافت گواهی SSL برای Nginx

برای نصب SSL با Certbot روی دامنه اصلی و www دستور زیر را اجرا کنید:

sudo certbot --nginx -d example.com -d www.example.com

اگر فقط دامنه اصلی به سرور متصل است، دستور زیر را اجرا کنید:

sudo certbot --nginx -d example.com

در اولین اجرا، Certbot از شما یک آدرس ایمیل درخواست می‌کند. این ایمیل برای اطلاع‌ رسانی‌ های ضروری مربوط به حساب گواهی استفاده می‌شود.
سپس باید شرایط استفاده از سرویس را تأیید کنید.
Certbot تنظیمات Nginx را شناسایی کرده، گواهی SSL را دریافت می‌کند و مسیرهای گواهی را در فایل تنظیمات وب‌ سرور قرار می‌دهد.
اگر گزینه انتقال HTTP به HTTPS نمایش داده شد، گزینه Redirect را انتخاب کنید تا تمام درخواست‌ های HTTP به HTTPS منتقل شوند

دستور رسمی certbot --nginx دریافت گواهی و اعمال تنظیمات HTTPS روی Nginx را در یک مرحله انجام می‌دهد.

بررسی فعال شدن SSL در Nginx

پس از پایان عملیات، آدرس زیر را در مرورگر باز کنید:

https://example.com

همچنین می‌توانید با دستور curl وضعیت سایت را بررسی کنید:

curl -I https://example.com

نمونه خروجی موفق:

HTTP/2 200
server: nginx

برای بررسی انتقال HTTP به HTTPS نیز دستور زیر را اجرا کنید:

curl -I http://example.com

اگر Redirect فعال باشد، باید کد وضعیت 301 یا 308 و آدرس HTTPS را مشاهده کنید.


نصب SSL با Certbot روی Apache

اگر سایت با Apache اجرا می‌شود، Certbot می‌تواند Virtual Host دامنه را شناسایی کرده و تنظیمات SSL را به‌ صورت خودکار ایجاد کند.

بررسی وضعیت Apache

در Ubuntu و Debian نام سرویس Apache برابر با apache2 است:

sudo systemctl status apache2

اگر سرویس متوقف است، آن را اجرا کنید:

sudo systemctl start apache2

برای اجرای خودکار Apache بعد از راه‌اندازی مجدد سرور:

sudo systemctl enable apache2

بررسی Virtual Host دامنه

Certbot دامنه را از طریق مقادیر ServerName و ServerAlias شناسایی می‌کند.
فایل Virtual Host را باز کنید:

sudo nano /etc/apache2/sites-available/example.com.conf

تنظیمات اولیه باید مشابه زیر باشد:

<VirtualHost *:80> 
    ServerName example.com 
    ServerAlias www.example.com 

    DocumentRoot /var/www/example.com 

    <Directory /var/www/example.com> 
        AllowOverride All 
        Require all granted 
    </Directory> 
</VirtualHost>

اگر دامنه www به سرور متصل نیست، خط زیر را حذف کنید:

ServerAlias www.example.com

سپس Virtual Host را فعال کنید:

sudo a2ensite example.com.conf

سپس صحت تنظیمات Apache را بررسی کنید:

sudo apachectl configtest

خروجی صحیح باید به شکل زیر باشد:

Syntax OK

سپس Apache را Reload کنید:

sudo systemctl reload apache2

دریافت گواهی SSL برای Apache

برای نصب SSL با Certbot روی دامنه اصلی و www دستور زیر را اجرا کنید:

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

اگر فقط دامنه اصلی به سرور متصل است:

sudo certbot --apache -d example.com

Certbot پس از بررسی دامنه، گواهی را دریافت کرده و Virtual Host مربوط به HTTPS را ایجاد یا ویرایش می‌کند.
اگر گزینه Redirect نمایش داده شد، آن را فعال کنید تا کاربران به‌ صورت خودکار از HTTP به HTTPS منتقل شوند.
دستور رسمی certbot --apache دریافت گواهی و تنظیم Apache برای استفاده از HTTPS را به‌ صورت خودکار انجام می‌دهد.

بررسی فعال شدن SSL در Apache

پس از پایان عملیات، سایت را با HTTPS باز کنید:

https://example.com

برای بررسی از طریق خط فرمان:

curl -I https://example.com

نمونه خروجی:

HTTP/2 200 
server: Apache

برای بررسی انتقال HTTP به HTTPS:

curl -I http://example.com

در صورت فعال بودن Redirect، درخواست باید به آدرس HTTPS منتقل شود.


نصب SSL برای زیر دامنه

برای نصب SSL روی یک زیر دامنه مانند panel.example.com ابتدا رکورد DNS آن را به IP سرور متصل کنید.

سپس در Nginx:

sudo certbot --nginx -d panel.example.com

در Apache:

sudo certbot --apache -d panel.example.com

هر زیردامنه باید در DNS و تنظیمات وب‌سرور به‌درستی تعریف شده باشد.


دریافت یک گواهی برای چند دامنه

یک گواهی می‌تواند چند دامنه یا زیر دامنه را به‌ صورت هم‌ زمان پوشش دهد.
نمونه :

sudo certbot --nginx \ 
-d example.com \ 
-d www.example.com \ 
-d panel.example.com \ 
-d api.example.com

نکته) تمام دامنه‌ های وارد شده باید در زمان صدور گواهی قابل اعتبار سنجی باشند. اگر حتی یکی از دامنه‌ ها به‌ درستی تنظیم نشده باشد، ممکن است کل فرایند صدور گواهی ناموفق شود.


نصب گواهی Wildcard با Certbot

گواهی Wildcard تمام زیر دامنه‌ های یک سطح از دامنه را پوشش می‌دهد:

*.example.com

این گواهی می‌تواند آدرس‌های زیر را پوشش دهد:

panel.example.com
api.example.com 
mail.example.com

اما دامنه اصلی example.com به‌ صورت خودکار تحت پوشش *.example.com قرار نمی‌گیرد. برای پوشش هر دو، باید هر دو نام را در دستور وارد کنید:

sudo certbot certonly \ 
--manual \ 
--preferred-challenges dns \ 
-d example.com \ 
-d '*.example.com'

Certbot یک مقدار TXT در اختیار شما قرار می‌دهد که باید در DNS ایجاد شود:

Name: _acme-challenge 
Type: TXT 
Value: CERTBOT_PROVIDED_VALUE

پس از انتشار رکورد، می‌توانید آن را بررسی کنید:

dig TXT _acme-challenge.example.com

بعد از مشاهده مقدار صحیح، به محیط Certbot بازگردید و Enter را فشار دهید.
گواهی Wildcard فقط از طریق DNS-01 صادر می‌شود. همچنین گواهی‌ هایی که با روش Manual و بدون Hook ساخته می‌شوند، تمدید خودکار ندارند.


مشاهده گواهی‌ های نصب‌ شده

برای مشاهده گواهی‌هایی که توسط Certbot مدیریت می‌شوند، دستور زیر را اجرا کنید:

sudo certbot certificates

در خروجی این دستور اطلاعات زیر نمایش داده می‌شود:

  • نام گواهی
  • دامنه‌های تحت پوشش
  • تاریخ انقضا
  • مسیر فایل گواهی
  • مسیر کلید خصوصی

نمونه خروجی:

Certificate Name: example.com 
Domains: example.com www.example.com 
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem 
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem

محل ذخیره فایل‌های SSL

فایل‌های مربوط به هر گواهی در مسیر زیر قرار می‌گیرند:

/etc/letsencrypt/live/example.com/

مهم‌ترین فایل‌ها عبارت‌اند از:

فایلکاربرد
fullchain.pemگواهی دامنه همراه با زنجیره کامل
privkey.pemکلید خصوصی گواهی
cert.pemگواهی اصلی دامنه
chain.pemزنجیره گواهی مرجع

Nginx و Apache معمولاً از دو فایل زیر استفاده می‌کنند:

fullchain.pem 
privkey.pem

فایل privkey.pem محرمانه است و نباید در مسیر عمومی سایت، مخزن Git یا اختیار اشخاص دیگر قرار بگیرد. کلید خصوصی روی خود سرور تولید و مدیریت می‌شود.


بررسی تمدید خودکار SSL

گواهی‌های Let’s Encrypt مدت اعتبار محدودی دارند؛ بنابراین فعال بودن تمدید خودکار ضروری است.
برای آزمایش تمدید خودکار دستور زیر را اجرا کنید:

sudo certbot renew --dry-run

اگر تنظیمات صحیح باشند، خروجی مشابه زیر نمایش داده می‌شود:

Congratulations, all simulated renewals succeeded

دستور renew --dry-run بدون ایجاد تغییر واقعی، فرایند تمدید گواهی را شبیه‌ سازی می‌کند و روش رسمی بررسی تمدید خودکار است.


تمدید دستی گواهی‌ها

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

sudo certbot renew

Certbot تمام گواهی‌های مدیریت‌شده را بررسی می‌کند و فقط گواهی‌هایی را تمدید می‌کند که در محدوده تمدید قرار گرفته باشند.
پس از تمدید، تنظیمات Nginx یا Apache به گواهی جدید اشاره می‌کنند و سرویس وب‌ سرور نیز Reload می‌شود.


نکات مهم پس از نصب SSL

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

  • سایت با آدرس HTTPS باز شود.
  • درخواست HTTP به HTTPS منتقل شود.
  • دامنه اصلی و www هر دو بررسی شوند.
  • پورت‌های ۸۰ و ۴۴۳ باز باقی بمانند.
  • فایل کلید خصوصی در اختیار افراد دیگر قرار نگیرد.
  • از تنظیمات وب‌سرور و مسیر /etc/letsencrypt نسخه پشتیبان تهیه شود.

دستورات پرکاربرد Certbot

کاربرددستور
مشاهده نسخه Certbotcertbot –version
نصب SSL روی Nginxsudo certbot –nginx -d example.com
نصب SSL روی Apachesudo certbot –apache -d example.com
مشاهده گواهی‌ هاsudo certbot certificates
تمدید گواهی‌ هاsudo certbot renew

چک‌ لیست نصب SSL با Certbot

قبل از نصب :

  • دامنه به IP صحیح سرور متصل است.
  • دامنه از طریق HTTP باز می‌شود.
  • پورت ۸۰ و 443 در فایروال باز است.
  • دامنه در تنظیمات وب‌ سرور تعریف شده است.
  • تنظیمات Nginx یا Apache خطای Syntax ندارد.
  • Certbot روی سرور نصب شده است.

پس از نصب:

  • سایت با HTTPS باز می‌شود.
  • HTTP به HTTPS منتقل می‌شود.
  • گواهی در خروجی certbot certificates نمایش داده می‌شود.
  • آزمایش تمدید خودکار موفق است.

جمع‌بندی

نصب SSL با Certbot روشی ساده و مطمئن برای دریافت گواهی رایگان Let’s Encrypt و فعال‌سازی HTTPS در سرورهای لینوکسی است. Certbot با استفاده از پلاگین‌ های Nginx و Apache می‌تواند گواهی را دریافت کرده و تنظیمات لازم را به‌ صورت خودکار در وب‌ سرور اعمال کند.
قبل از اجرای Certbot باید دامنه به IP صحیح سرور متصل باشد، سایت از طریق پورت ۸۰ در دسترس قرار داشته باشد و دامنه نیز در Server Block یا Virtual Host وب‌ سرور تعریف شده باشد.
پس از نصب گواهی، اجرای دستور certbot renew --dry-run اهمیت زیادی دارد. موفق بودن این دستور نشان می‌دهد که تمدید خودکار گواهی به‌ درستی انجام خواهد شد و احتمال منقضی شدن SSL کاهش پیدا می‌کند.

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مطالب اخیراً بازدیدشده

  • آموزش Hardening پایگاه داده MySQL
  • تفاوت دامنه و هاست چیست؟
  • انتقال اطلاعات بین دو سرور لینوکس با Transfer Tool
  • تفاوت DNS و نیم‌سرور چیست؟
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش نصب SSL با Certbot در لینوکس

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام