امنیت ارتباطات در وب یکی از مهمترین موضوعات زیرساخت اینترنت است. زمانی که در مرورگر خود به یک وبسایت با آدرس https وارد میشوید، در واقع ارتباط شما با آن سایت از طریق گواهی SSL/TLS رمزنگاری شده است. این گواهیها توسط نهادهایی به نام مراجع صادرکننده گواهی یا Certificate Authority (CA) صادر میشوند.
اما فرآیند صدور این گواهیها چگونه انجام میشود؟ مرورگرها از کجا میدانند که یک گواهی معتبر است؟ نقش Root Certificate و Intermediate Certificate در این میان چیست؟ و سرویسهایی مانند Let’s Encrypt چگونه به صورت خودکار گواهی صادر میکنند؟
در این مقاله به صورت آموزشی ساختار و فرآیند صدور گواهی SSL را بررسی میکنیم.

گواهی SSL یا TLS چیست؟
گواهی SSL (که امروزه بیشتر با نام TLS Certificate شناخته میشود) یک گواهی دیجیتال است که برای احراز هویت یک وبسایت و ایجاد ارتباط رمزنگاریشده میان کاربر و سرور استفاده میشود.
زمانی که یک کاربر به سایتی با HTTPS متصل میشود، چند اتفاق مهم رخ میدهد:
- هویت سرور بررسی میشود
- یک کلید رمزنگاری امن بین مرورگر و سرور ایجاد میشود
- دادهها به صورت رمزنگاریشده منتقل میشوند
به این فرآیند TLS Handshake گفته میشود.
بدون وجود یک گواهی معتبر، مرورگرها هشدار امنیتی نمایش میدهند زیرا نمیتوانند مطمئن شوند که وبسایت واقعی است.
Certificate Authority (CA) چیست؟
Certificate Authority یا CA سازمانی است که وظیفه صدور، امضا و مدیریت گواهیهای دیجیتال را بر عهده دارد.
در واقع CA نقش یک مرجع مورد اعتماد را در اینترنت بازی میکند. زمانی که یک CA گواهی یک دامنه را امضا میکند، مرورگرها به آن اعتماد میکنند.
برخی از معروفترین CA ها عبارتند از:
- DigiCert
- Sectigo
- GlobalSign
- Let’s Encrypt
- Entrust
مرورگرها و سیستمعاملها لیستی از CA های معتبر دارند که به آن Trusted Root Store گفته میشود.
اگر گواهی یک سایت توسط یکی از این CA های مورد اعتماد صادر شده باشد، مرورگر آن را معتبر تلقی میکند.
Root Certificate چیست؟
در بالاترین سطح ساختار اعتماد، Root Certificate قرار دارد.
Root Certificate یک گواهی دیجیتال است که توسط خود CA ایجاد شده و Self-signed است؛ یعنی توسط خودش امضا شده است.
ویژگیهای Root Certificate:
- در بالاترین سطح زنجیره اعتماد قرار دارد
- در مرورگرها و سیستمعاملها از قبل ذخیره شده است
- بسیار محافظت میشود و معمولاً به صورت آفلاین نگهداری میشود
برای مثال، سیستمعاملها و مرورگرها دارای لیستی از Root Certificate ها هستند که به آنها اعتماد دارند. این لیست پایه اصلی اعتماد در زیرساخت TLS محسوب میشود.
اما یک نکته مهم وجود دارد:
به دلایل امنیتی، Root Certificate ها معمولاً مستقیماً برای صدور گواهی وبسایت استفاده نمیشوند.
معماری Root CA چگونه است؟
✅ Root CA معمولاً آفلاین است
در معماری حرفهای PKI:
- Root CA روی یک سیستم کاملاً جدا
- بدون اتصال دائمی به اینترنت
- در محیط فیزیکی امن
- با HSM (Hardware Security Module)
نگهداری میشود. چرا؟ چون اگر کلید خصوصی Root لو برود، کل اکوسیستم گواهیهای صادر شده از آن CA بیاعتبار میشود.
✅ ساختار سلسلهمراتبی
معماری معمول:
Offline Root CA
↓
Policy / Issuing Intermediate CA
↓
End-Entity Certificates (SSL/TLS)
بعضی CA ها چندین Intermediate دارند:
- یکی برای EV Certificates
- یکی برای OV
- یکی برای Code Signing
- یکی برای S/MIME
این معماری باعث مدیریتپذیری و کنترل ریسک میشود.
Root Certificate چگونه ساخته میشود؟
مرحله اول: تولید کلید خصوصی
در Root CA معمولاً از الگوریتمهای قوی استفاده میشود.
الگوریتمهای رایج:
✅ RSA
- ۲۰۴۸-bit (حداقل)
- ۳۰۷۲-bit
- ۴۰۹۶-bit (رایج برای Root)
✅ ECC (Elliptic Curve Cryptography)
- P-256 (prime256v1)
- P-384
- P-521
امروزه بسیاری از Root های جدید از ECC استفاده میکنند چون:
- سریعتر هستند
- کلید کوتاهتر ولی امنیت مشابه دارند
مرحله دوم: امضای Self-Signed
Root Certificate خودش را با کلید خصوصی خودش امضا میکند.
از نظر فنی اگر کلید خصوصی = K_priv و کلید عمومی = K_pub باشد، Root Certificate شامل K_pub است و با K_priv امضا شده.
مرورگرها به جای بررسی امضای Root، به آن اعتماد پیشفرض دارند.
الگوریتمهای امضا (Signature Algorithms)
رایجترین الگوریتمهای امضای Root:
- SHA256WithRSAEncryption
- SHA384WithRSA
- ECDSAWithSHA256
- ECDSAWithSHA384
الگوریتمهای قدیمی مانند:
- SHA1
- MD5
کاملاً منسوخ شدهاند و دیگر مورد قبول نیستند.
Root Certificate داخل مرورگرها چگونه قرار میگیرد؟
این قسمت بسیار مهم است.
Root ها به صورت خودکار توسط CA وارد مرورگر نمیشوند.
آنها باید از فرآیندهای سختگیرانه عبور کنند.
Root Program چیست؟
مرورگرها و سیستمعاملها برنامهای به نام Root Program دارند.
مثالها:
- Mozilla Root Program
- Microsoft Trusted Root Program
- Apple Root Certificate Program
- Google Chrome Root Store (از ۲۰۲۳ به بعد مستقلتر شده)
CA باید:
- درخواست رسمی بدهد
- ممیزی امنیتی مستقل ارائه دهد (WebTrust Audit)
- سیاستهای صدور گواهی را منتشر کند
- تستهای امنیتی را بگذراند
در صورت تأیید، Root آنها در نسخههای بعدی سیستمعامل یا مرورگر اضافه میشود.
مثالهای واقعی Root Certificate
چند نمونه معروف:
✅ DigiCert Global Root G2
- الگوریتم: RSA 4096
- Signature: SHA256
- بسیار پرکاربرد
✅ ISRG Root X1 (مربوط به Let’s Encrypt)
این Root بسیار معروف است.
ویژگیها:
- RSA 4096
- معتبر تا سال ۲۰۳۵
- توسط اکثر مرورگرها trusted است
Let’s Encrypt ابتدا از Root دیگری cross-sign گرفته بود (DST Root CA X3) تا زمانی که Root خودش در همه سیستمها پذیرفته شود.
✅ GlobalSign Root CA
یکی از قدیمیترین Root های فعال در دنیا.
Cross-Signing چیست؟
گاهی یک Root جدید هنوز در همه سیستمها نصب نشده.
راهحل چیست؟
یک Root قدیمی و trusted آن را امضا میکند که به این فرآیند Cross-signing میگویند.
Let’s Encrypt دقیقاً همین کار را انجام داد تا سریعتر قابل استفاده شود.
Intermediate Certificate چیست؟
برای افزایش امنیت، CA ها معمولاً از Intermediate Certificate استفاده میکنند.
Intermediate Certificate گواهیای است که:
- توسط Root Certificate امضا شده است
- برای صدور گواهیهای دیگر استفاده میشود
به این ترتیب Root Certificate به صورت مستقیم در فرآیند صدور دخالت نمیکند و در صورت بروز مشکل، میتوان فقط Intermediate را باطل کرد.
ساختار معمول صدور گواهی به شکل زیر است:
Root CA
↓
Intermediate CA
↓
SSL Certificate (گواهی وبسایت)
به این ساختار Certificate Chain یا زنجیره گواهی گفته میشود.
زنجیره اعتماد (Chain of Trust)
مرورگرها برای بررسی اعتبار یک گواهی، زنجیرهای از اعتماد را بررسی میکنند.
فرض کنید کاربر به سایتی با دامنه example.com متصل میشود.
در این حالت مرورگر مراحل زیر را طی میکند:
- گواهی وبسایت بررسی میشود
- امضای آن توسط Intermediate CA بررسی میشود
- امضای Intermediate توسط Root CA بررسی میشود
- Root CA در لیست Trusted Root مرورگر جستجو میشود
اگر تمام این مراحل معتبر باشند، مرورگر ارتباط را امن تشخیص میدهد.
در غیر این صورت کاربر با خطایی مانند موارد زیر مواجه میشود:
- Certificate not trusted
- Invalid certificate chain
- Self-signed certificate
خرید گواهی امنیتی تجاری را از مراجع اصلی انجام دهید. شاید ملاحظه این لینک برای شما مفید باشد.

فرآیند صدور گواهی SSL
فرآیند صدور یک گواهی SSL معمولاً شامل مراحل زیر است:
۱. تولید کلید خصوصی (Private Key)
در ابتدا مدیر سرور یک Private Key روی سرور تولید میکند. این کلید باید کاملاً محرمانه نگهداری شود زیرا امنیت ارتباط به آن وابسته است.
۲. ایجاد CSR
در مرحله بعد فایلی به نام Certificate Signing Request (CSR) ایجاد میشود.
CSR شامل اطلاعات زیر است:
- نام دامنه (Domain Name)
- نام سازمان
- کشور
- الگوریتم رمزنگاری
- کلید عمومی (Public Key)
این فایل برای CA ارسال میشود.
۳. اعتبارسنجی دامنه
CA باید مطمئن شود که درخواستدهنده واقعاً مالک دامنه است.
روشهای رایج اعتبارسنجی عبارتند از:
- DNS Validation
- HTTP Validation
- Email Validation
در این مرحله CA بررسی میکند که کنترل دامنه در اختیار متقاضی باشد.
۴. صدور گواهی
پس از تأیید دامنه، CA گواهی را امضا کرده و فایل گواهی صادر میشود.
این گواهی شامل موارد زیر است:
- دامنه
- کلید عمومی
- تاریخ اعتبار
- اطلاعات CA
- امضای دیجیتال CA
۵. نصب گواهی روی سرور
در نهایت مدیر سرور گواهی را روی وبسرور نصب میکند.
در این مرحله معمولاً فایلهای زیر استفاده میشوند:
- SSL Certificate
- Intermediate Certificate
- Private Key
پس از نصب صحیح، سایت با HTTPS در دسترس خواهد بود.
Let’s Encrypt چگونه کار میکند؟
Let’s Encrypt یک CA رایگان و متنباز است که با هدف گسترش HTTPS در اینترنت ایجاد شده است.
این پروژه توسط سازمان ISRG (Internet Security Research Group) مدیریت میشود.
ویژگی مهم Let’s Encrypt این است که صدور گواهی را کاملاً خودکار کرده است.
پروتکل ACME
Let’s Encrypt از پروتکلی به نام ACME (Automatic Certificate Management Environment) استفاده میکند.
این پروتکل به سرورها اجازه میدهد که به صورت خودکار:
- درخواست گواهی بدهند
- مالکیت دامنه را اثبات کنند
- گواهی دریافت کنند
- گواهی را تمدید کنند
ابزارهایی مانند Certbot از این پروتکل استفاده میکنند.
فرآیند صدور گواهی در Let’s Encrypt
فرآیند معمول به این شکل است:
- سرور با ACME Server ارتباط برقرار میکند
- درخواست صدور گواهی برای دامنه ارسال میشود
- Let’s Encrypt یک challenge برای اعتبارسنجی ایجاد میکند
- سرور باید challenge را پاسخ دهد (DNS یا HTTP)
- در صورت موفقیت، گواهی صادر میشود
این فرآیند معمولاً در چند ثانیه انجام میشود.
تمدید خودکار گواهی
گواهیهای Let’s Encrypt فقط ۹۰ روز اعتبار دارند.
اما به دلیل وجود ACME، تمدید آنها کاملاً خودکار انجام میشود.
مزایای این روش:
- کاهش ریسک استفاده از گواهیهای منقضی شده
- افزایش امنیت
- حذف فرآیندهای دستی
چرا ساختار Root و Intermediate مهم است؟
استفاده از Intermediate Certificate چند مزیت مهم دارد:
امنیت بیشتر
Root Certificate ها معمولاً آفلاین نگهداری میشوند و به ندرت استفاده میشوند.
امکان لغو محدود
اگر Intermediate دچار مشکل شود، میتوان آن را باطل کرد بدون اینکه Root CA آسیب ببیند.
مدیریت بهتر
CA ها میتوانند چندین Intermediate مختلف برای کاربردهای متفاوت داشته باشند.
مشکلات رایج در پیکربندی SSL
در برخی مواقع وبسایتها با مشکلاتی در زنجیره گواهی مواجه میشوند.
رایجترین مشکلات:
- نصب نکردن Intermediate Certificate
- استفاده از گواهی منقضی شده
- استفاده از Self-signed certificate
- عدم تطابق دامنه با گواهی
ابزارهایی مانند SSL Labs میتوانند این مشکلات را بررسی کنند.
جمعبندی
گواهیهای SSL/TLS یکی از ستونهای اصلی امنیت اینترنت هستند. این گواهیها امکان ارتباط امن میان کاربران و سرورها را فراهم میکنند و از حملاتی مانند Man-in-the-Middle جلوگیری میکنند.
در این میان، Certificate Authority ها نقش حیاتی در ایجاد اعتماد در اینترنت دارند. ساختار Root Certificate و Intermediate Certificate نیز به گونهای طراحی شده است که هم امنیت بالا داشته باشد و هم امکان مدیریت و ابطال گواهیها فراهم شود.
سرویسهایی مانند Let’s Encrypt با خودکارسازی کامل فرآیند صدور و تمدید گواهیها، استفاده از HTTPS را بسیار سادهتر کردهاند و باعث شدهاند امروزه بخش بزرگی از وب از ارتباطات رمزنگاریشده استفاده کند.
درک نحوه عملکرد این زیرساخت نه تنها برای متخصصان امنیت، بلکه برای مدیران سرور و توسعهدهندگان وب نیز اهمیت زیادی دارد؛ زیرا پیکربندی صحیح SSL یکی از پایههای امنیت هر وبسایت محسوب میشود.