آموزش نصب SSL

آموزش کامل نصب گواهی SSL پارسدِو روی nginx، Apache، IIS، cPanel و DirectAdmin: دانلود فایل‌ها، نصب، بررسی و رفع خطاهای رایج.

در این صفحه

بعد از اینکه مالکیت دامنه تایید شد و وضعیت گواهی در پنل «صادر شده» شد، گواهی آماده نصب است. در این راهنما فایل‌های گواهی را از پنل دانلود می‌کنید، آن‌ها را روی وب سرور یا کنترل پنل هاست نصب می‌کنید و در پایان نصب را بررسی می‌کنید.

در مثال‌های این صفحه نام دامنه example.com است. به جای آن نام دامنه خود را بنویسید.

پیش از نصب

  • وضعیت گواهی در پنل باید «صادر شده» باشد. تا وقتی مالکیت دامنه تایید نشده، گواهی صادر نمی‌شود و فایلی برای نصب وجود ندارد.
  • به سرور (SSH یا Remote Desktop) یا به کنترل پنل هاست (cPanel یا DirectAdmin) دسترسی داشته باشید.
  • کلید خصوصی (Private Key) را آماده کنید:
    • اگر هنگام سفارش، پنل پارسدِو کلید و CSR را ساخته است، کلید خصوصی در پنل است و همراه بقیه فایل‌ها دانلود می‌شود.
    • اگر CSR را خودتان روی سرور ساخته‌اید، کلید خصوصی فقط روی همان سرور است و پنل آن را ندارد. در این حالت از همان کلید استفاده کنید.

دانلود فایل‌های گواهی

  1. وارد پنل کاربری شوید و به بخش «سرویس‌ها» بروید.
  2. روی دکمه «مدیریت» سرویس SSL بزنید.
  3. در بخش «دانلود فایل‌های گواهی» فایل‌هایی را که وب سرور شما لازم دارد دانلود کنید.
فایل در پنل نام فایل کاربرد
گواهی (.crt) example.com.crt خود گواهی دامنه
زنجیره (CA Bundle) example.com.ca-bundle گواهی‌های میانی Certum که مرورگر برای اعتماد به گواهی لازم دارد
Full chain (.pem) example.com-fullchain.pem گواهی و زنجیره در یک فایل؛ برای nginx و Apache 2.4.8 به بعد
کلید خصوصی (.key) example.com.key کلید خصوصی گواهی؛ فقط وقتی کلید را پنل ساخته باشد
PFX / PKCS#12 example.com.pfx کلید، گواهی و زنجیره در یک فایل رمزدار؛ برای IIS، Windows و Tomcat
همه فایل‌ها (ZIP) example.com.zip همه فایل‌های بالا (به جز PFX) در یک فایل فشرده

نام فایل‌های گواهی Wildcard با wildcard. شروع می‌شود، مثلا wildcard.example.com.crt.

کلید خصوصی

کلید خصوصی را به هیچ کس ندهید و آن را در ایمیل، تیکت یا پیام‌رسان نفرستید. اگر فکر می‌کنید کلید خصوصی در اختیار کس دیگری قرار گرفته است، گواهی را از پنل دوباره صادر کنید تا کلید جدید ساخته شود.

نصب روی nginx

  1. فایل‌های example.com-fullchain.pem و example.com.key را در پوشه /etc/ssl سرور بگذارید.
  2. دسترسی فایل کلید را محدود کنید:
chmod 600 /etc/ssl/example.com.key
  1. فایل تنظیمات سایت را باز کنید (معمولا در /etc/nginx/conf.d/ یا /etc/nginx/sites-available/) و بلوک server پورت 443 را مانند نمونه زیر بنویسید:
server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/example.com-fullchain.pem;
    ssl_certificate_key /etc/ssl/example.com.key;
    ssl_protocols       TLSv1.2 TLSv1.3;

    root /var/www/example.com;
}

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}
  1. تنظیمات را آزمایش کنید و nginx را دوباره بارگذاری کنید:
nginx -t && systemctl reload nginx

نکته

در ssl_certificate فایل example.com-fullchain.pem را بدهید، نه فایل example.com.crt را. اگر فقط فایل crt را بدهید، زنجیره ناقص می‌ماند و بعضی مرورگرها و برنامه‌ها (به خصوص اندروید) خطای گواهی نامعتبر نشان می‌دهند.

نصب روی Apache

  1. فایل‌های example.com-fullchain.pem و example.com.key را در پوشه /etc/ssl سرور بگذارید.
  2. ماژول SSL آپاچی را فعال کنید:
    • در Debian و Ubuntu:
a2enmod ssl
  • در AlmaLinux، Rocky Linux و CentOS:
dnf install mod_ssl
  1. در فایل تنظیمات سایت، یک VirtualHost برای پورت 443 بنویسید:
<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com

    SSLEngine on
    SSLCertificateFile    /etc/ssl/example.com-fullchain.pem
    SSLCertificateKeyFile /etc/ssl/example.com.key
</VirtualHost>
  1. برای انتقال بازدیدکنندگان از http به https، در VirtualHost پورت 80 این خط را بنویسید:
Redirect permanent / https://example.com/
  1. تنظیمات را آزمایش کنید و آپاچی را دوباره بارگذاری کنید:
apachectl configtest && systemctl reload apache2

در AlmaLinux، Rocky Linux و CentOS نام سرویس httpd است: systemctl reload httpd

آپاچی قدیمی‌تر از نسخه 2.4.8

در این نسخه‌ها فایل گواهی و زنجیره را جدا بدهید:

SSLCertificateFile      /etc/ssl/example.com.crt
SSLCertificateKeyFile   /etc/ssl/example.com.key
SSLCertificateChainFile /etc/ssl/example.com.ca-bundle

نصب روی IIS (Windows Server)

اگر کلید را پنل ساخته است (فایل PFX)

  1. در پنل، روی «PFX / PKCS#12» بزنید، یک رمز برای فایل بنویسید و فایل example.com.pfx را دانلود کنید.
  2. فایل را روی سرور ویندوز کپی کنید.
  3. IIS Manager را باز کنید، روی نام سرور بزنید و Server Certificates را باز کنید.
  4. در ستون Actions روی Import بزنید.
  5. فایل example.com.pfx و رمز آن را بدهید. در Certificate store گزینه Personal یا Web Hosting را انتخاب کنید و OK را بزنید.
  6. در Sites روی سایت بزنید و Bindings را باز کنید.
  7. روی Add بزنید. Type را https و Port را 443 بگذارید و در Host name نام دامنه را بنویسید.
  8. اگر چند سایت HTTPS روی یک IP دارید، گزینه Require Server Name Indication را روشن کنید.
  9. در SSL certificate گواهی را انتخاب کنید و OK را بزنید.

اگر CSR را خودتان در IIS ساخته‌اید

  1. فایل example.com.crt را از پنل دانلود کنید و روی همان سروری که CSR را ساخت کپی کنید.
  2. در IIS Manager، Server Certificates را باز کنید و روی Complete Certificate Request بزنید.
  3. فایل example.com.crt را انتخاب کنید. اگر فایل در پنجره دیده نمی‌شود، نوع فایل را روی *.* بگذارید.
  4. یک نام (Friendly name) بنویسید و OK را بزنید. گواهی به کلیدی که با CSR ساخته شد وصل می‌شود.
  5. مراحل 6 تا 9 بخش قبل (Bindings) را انجام دهید.

نکته

اگر بعد از نصب، مرورگر خطای زنجیره ناقص نشان داد، فایل example.com.ca-bundle را با برنامه certlm.msc در بخش Intermediate Certification Authorities وارد (Import) کنید.

نصب روی cPanel

  1. وارد cPanel شوید و در بخش Security روی SSL/TLS بزنید.
  2. در بخش Install and Manage SSL for your site (HTTPS) روی Manage SSL sites بزنید.
  3. در Domain دامنه را انتخاب کنید.
  4. محتوای فایل‌ها را در کادرها بگذارید (هر فایل را با یک ویرایشگر متن مانند Notepad باز کنید و همه متن آن را کپی کنید):
    • محتوای example.com.crt در کادر Certificate (CRT)
    • محتوای example.com.key در کادر Private Key (KEY)
    • محتوای example.com.ca-bundle در کادر Certificate Authority Bundle (CABUNDLE)
  5. روی Install Certificate بزنید.

متن هر فایل را کامل کپی کنید، از خط -----BEGIN ...----- تا خط -----END ...-----.

نصب روی DirectAdmin

  1. وارد DirectAdmin شوید و در Account Manager روی SSL Certificates بزنید.
  2. گزینه Paste a pre-generated certificate and key را انتخاب کنید.
  3. در کادر، اول محتوای example.com.key و بلافاصله زیر آن محتوای example.com.crt را بگذارید.
  4. روی Save بزنید.
  5. روی لینک Click Here to paste a CA Root Certificate بزنید.
  6. محتوای example.com.ca-bundle را در کادر بگذارید، گزینه Use a CA Cert را روشن کنید و Save را بزنید.

اگر SSL برای دامنه فعال نیست، در Domain Setup دامنه را باز کنید و گزینه Secure SSL را روشن کنید.

سایر سرورها و برنامه‌ها

بیشتر سرورها و برنامه‌ها یکی از این دو حالت را لازم دارند:

  • سه فایل جدا: گواهی (.crt)، کلید خصوصی (.key) و زنجیره (.ca-bundle)؛ یا گواهی و زنجیره با هم (-fullchain.pem) و کلید.
  • یک فایل PFX (PKCS#12) با رمز؛ برای برنامه‌های Windows، Java و Tomcat.

راهنمای همان نرم افزار را ببینید و فایل مناسب را از پنل دانلود کنید.

بررسی نصب

  1. سایت را با https:// در مرورگر باز کنید. علامت قفل باید بدون هشدار دیده شود و صادرکننده گواهی Certum باشد.
  2. روی سرور لینوکس یا هر سیستمی که openssl دارد، این دستور را اجرا کنید:
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null

در خروجی، عبارت Verify return code: 0 (ok) یعنی گواهی و زنجیره درست نصب شده‌اند.

  1. برای دیدن تاریخ شروع و پایان اعتبار گواهی نصب شده:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
  1. برای یک بررسی کامل، دامنه را در سایت SSL Labs (ssllabs.com/ssltest) آزمایش کنید.

خطاهای رایج

زنجیره ناقص (Incomplete chain)

وب سرور گواهی‌های میانی Certum را نمی‌فرستد. در nginx و Apache 2.4.8 به بعد از فایل example.com-fullchain.pem استفاده کنید. در cPanel کادر CABUNDLE و در DirectAdmin بخش CA Root Certificate را پر کنید.

کلید با گواهی نمی‌خواند (key values mismatch)

کلید خصوصی مال این گواهی نیست. با این دو دستور آن‌ها را مقایسه کنید. خروجی دو دستور باید یکی باشد:

openssl x509 -in example.com.crt -noout -pubkey | openssl sha256
openssl pkey -in example.com.key -pubout | openssl sha256

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

نام دامنه با گواهی نمی‌خواند (NET::ERR_CERT_COMMON_NAME_INVALID)

سایت با نامی باز شده است که گواهی آن را پوشش نمی‌دهد. مثلا گواهی برای example.com صادر شده است ولی سایت با shop.example.com باز شده است. گواهی Wildcard (*.example.com) زیردامنه‌های یک سطحی مانند www.example.com و shop.example.com را پوشش می‌دهد، ولی زیردامنه دو سطحی مانند a.b.example.com را پوشش نمی‌دهد.

هنوز گواهی قبلی نشان داده می‌شود
  • وب سرور را دوباره بارگذاری (reload) کنید.
  • بررسی کنید که گواهی را در VirtualHost یا بلوک server درست (همان دامنه و پورت 443) گذاشته‌اید.
  • اگر سایت پشت CDN یا پروکسی است (مثلا ابر آروان یا Cloudflare)، بازدیدکننده گواهی CDN را می‌بیند. گواهی را در پنل CDN هم نصب کنید.
قفل مرورگر هشدار محتوای ناامن دارد (Mixed content)

صفحه بعضی فایل‌ها (تصویر، CSS یا JavaScript) را با http:// بارگذاری می‌کند. آدرس این فایل‌ها را به https:// تغییر دهید. در وردپرس، آدرس سایت را در تنظیمات به https:// تغییر دهید.

تمدید و صدور مجدد

  • از مارس ۲۰۲۶ اعتبار هر گواهی SSL حداکثر ۱۹۹ روز است. اگر سرویس SSL شما بیشتر از گواهی اعتبار دارد، گواهی را پیش از پایان اعتبار، رایگان از پنل دوباره صادر کنید. صدور مجدد فقط در طول سال گواهی ممکن و رایگان است؛ در پایان سال، گواهی تمدید می‌شود (بند بعد).
  • پارسدِو ۳۰، ۱۴، ۷ و ۱ روز پیش از پایان اعتبار گواهی، به شما پیامک و ایمیل اطلاع رسانی می‌فرستد.
  • هر سال سرویس SSL یک سال گواهی دارد. در پایان این سال، صدور مجدد ممکن نیست. اگر سرویس را برای سال بعد تمدید کرده‌اید، در پنل روی «تمدید گواهی» بزنید و مالکیت دامنه را دوباره تایید کنید. تمدید گواهی هزینه جداگانه‌ای ندارد.
  • بعد از صدور مجدد یا تمدید، گواهی و کلید جدید ساخته می‌شوند. فایل‌های جدید را از پنل دانلود کنید و دوباره نصب کنید.

رکورد CAA

اگر دامنه شما رکورد CAA دارد، این رکورد باید صدور گواهی توسط Certum را مجاز کند، وگرنه گواهی صادر نمی‌شود. برای گواهی معمولی این رکورد را به DNS دامنه اضافه کنید:

example.com. IN CAA 0 issue "certum.pl"

برای گواهی Wildcard به جای issue از issuewild استفاده کنید.

اگر در نصب گواهی مشکلی داشتید، از پنل کاربری تیکت پشتیبانی ثبت کنید.