چرا انواع گواهی SSL یک تصمیم معماری است؟
چرا انتخاب انواع گواهی SSL (SSL Certificate) یک تصمیم معماری است و چه تفاوتهای فنی بین Domain Validation، Organization Validation و Extended Validation، Wildcard، SAN و Multi-Domain، Code Signing و Client Certificate وجود دارد؟ تحلیل مهندسی X.509 v3، Certificate Transparency، ACME و Root Program بر پایه تجربه پروژههای سازمانی.
در یکی از پروژههای فروشگاهی که روزانه هزاران تراکنش را پردازش میکرد، تیم زیرساخت از یک Wildcard Certificate برای همه زیردامنهها استفاده میکرد. اعتبار گواهی در یک روز شلوغ فروشگاهی منقضی شد و چون هیچ مکانیزم Alerting روی Certificate Expiry وجود نداشت، سه ساعت اولیه روز فروش از دست رفت. بررسی پس از حادثه نشان داد که مسئله در نوع گواهی نبود، در نبود یک تصمیم معماری درست بود: انتخاب نوع گواهی باید با ملاحظات انقضا، گستره، و Autorenew پیوند داشته باشد. این نوشته، تحلیل فنی انواع گواهی SSL از دید یک مهندس زیرساخت است.
تقسیمبندی فنی گواهیها: سه محور
در ادبیات عمومی، انواع گواهی SSL بهطور معمول به DV، OV و EV تقسیم میشود. اما از دید معماری، گواهیها را باید در سه محور مستقل دستهبندی کرد؛ چرا که این سه محور، تصمیمهای متفاوتی را میسازند:
- محور Validation Level: DV (Domain Validation)، OV (Organization Validation)، EV (Extended Validation). تصمیم: سطح Identity Assurance.
- محور Coverage: Single-Domain، Wildcard، Multi-Domain (SAN)، UCC. تصمیم: دامنه پوشش.
- محور Purpose: Server Certificate، Code Signing، Email (S/MIME)، Client Certificate، Document Signing. تصمیم: نوع استفاده.
طبق تعریف ویکیپدیای فارسی درباره گواهی امنیت لایه انتقال، SSL Certificate در واقع یک سند امضاشده دیجیتال است که هویت سرور را تأیید میکند. آنچه در ادامه میآید، تحلیل هر یک از این سه محور با نگاه مهندسی است.
انتخاب نوع گواهی، پیش از تصمیم امنیتی، یک تصمیم معماری است که با گستره دامنه، سطح Assurance و مکانیزم Autorenew گره خورده است.
ساختار X.509 v3 و استانداردهای RFC 5280
همه گواهیهای SSL در وب، بر پایه استاندارد X.509 v3 ساخته میشوند که در RFC 5280 تعریف شده است. ساختار یک Certificate بهطور خلاصه شامل این بخشهاست:
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
extensions [3] EXPLICIT Extensions OPTIONAL
}
در X.509 v3، دو Extension کلیدی که در همه گواهیهای وب حضور دارند، عبارتند از: subjectAltName (که دامنههای تحت پوشش را مشخص میکند) و basicConstraints (که CA بودن یا نبودن گواهی را تعیین میکند). از سال 2017 و پس از CAB Forum Baseline Requirements، استفاده از Common Name برای مشخص کردن دامنه منسوخ شده و همه مرورگرها فقط به subjectAltName تکیه میکنند. این تغییر در مقیاس صنعتی، تعداد گواهیهای ناسازگار را حدود 40 درصد کاهش داد. برای مطالعه بیشتر درباره نصب گواهی در وردپرس، راهاندازی SSL و HTTPS در وردپرس و SSL چیست و چرا سایت به آن نیاز دارد را ببینید.
DV، OV و EV: سه سطح Validation
سه سطح Validation از نظر مکانیزم احراز هویت و سطح Assurance تفاوت بنیادی دارند:
| معیار | DV | OV | EV |
|---|---|---|---|
| مکانیزم تأیید | فقط کنترل دامنه | کنترل دامنه + هویت سازمان | کنترل دامنه + هویت سازمان + تأیید قانونی |
| زمان صدور | ثانیه تا دقیقه | ۱ تا ۳ روز کاری | ۳ تا ۱۰ روز کاری |
| مدارک لازم | هیچ | گواهی ثبت شرکت | گواهی ثبت + مکاتبه رسمی |
| اطلاعات در گواهی | فقط دامنه | نام و آدرس سازمان | نام، آدرس، شماره ثبت |
| Indicator در URL Bar | قفل ساده | قفل ساده | قفل ساده (تغییر از 2019) |
| قیمت سالانه | رایگان تا ۵۰ دلار | ۵۰ تا ۳۰۰ دلار | ۱۵۰ تا ۱۵۰۰ دلار |
نکته کلیدی که در سالهای اخیر تغییر کرده: از نسخه Chrome 77 و Firefox 70 (سال 2019)، نشانگر EV در نوار آدرس مرورگرها حذف شد. این تصمیم بر مبنای تحقیقات UX گرفته شد که نشان میداد کاربران معمولی تفاوت EV و OV را تشخیص نمیدهند. با این حال، در Enterprise contexts، مکانیزم تأیید سازمانی EV همچنان ارزش عملی دارد: در محیطهای داخلی که Zero Trust Architecture پیاده میشود، gواهی EV بهعنوان یک لایه Assurance قویتر در احراز هویت سرویسها بهکار میرود. برای مطالعه بیشتر درباره انواع گواهی، گواهی SSL رایگان و پولی چه تفاوتی دارند و SSL Wildcard چیست را ببینید.
DV، OV و EV سه سطح Assurance هستند، نه سه سطح امنیت رمزنگاری؛ قدرت رمزنگاری در همه آنها یکسان است.
Wildcard Certificate: مرزها و ریسکها
یک Wildcard Certificate دامنه اصلی و همه زیردامنههای یک سطح را پوشش میدهد. برای مثال، گواهی *.example.com دامنههای www.example.com، api.example.com و mail.example.com را پوشش میدهد، ولی a.b.example.com را نه. علت این محدودیت، ساختار تطبیق Wildcard در RFC 6125 است که فقط یک سطح زیردامنه را مجاز میداند.
Wildcard در مقیاس سازمانی، Trade-off مشخصی دارد:
- مزیت: کاهش هزینه مدیریت و تعداد گواهیها. در یک سازمان با ۲۰ زیردامنه، یک Wildcard جای ۲۰ گواهی Single-Domain را میگیرد.
- ریسک امنیتی: اگر Private Key لو برود، همه زیردامنهها همزمان در معرض خطر قرار میگیرند. در چند حادثه واقعی که در صنعت گزارش شده، همین مسئله به افشای داده در چندین سرویس منجر شده است.
- محدودیت فنی: Wildcard برای دامنه اصلی (Root Domain) کار نمیکند. گواهی
*.example.comشاملexample.comنمیشود. برای پوشش دامنه اصلی، باید SAN اضافی برای Root Domain اضافه شود. - پیچیدگی در Certificate Transparency: همه زیردامنههایی که Wildcard پوشش میدهد، در CT Logs ثبت نمیشوند؛ همین مسئله در Auditing امنیتی چالشبرانگیز است.
توصیه عملی از تجربه پروژهها: برای محیطهای Production، Wildcard را بهعنوان بخشی از یک استراتژی ترکیبی در نظر بگیرید: Wildcard برای محیطهای داخلی و Staging، Single-Domain یا SAN Certificate برای محیط Production. برای مطالعه بیشتر درباره تفاوت گواهیها، چگونه SSL سایت را نصب کنیم و اشتباهات رایج در نصب SSL را ببینید.
SAN و Multi-Domain Certificate
یک گواهی SAN یا Multi-Domain، امکان پوشش چند دامنه مستقل را در یک گواهی فراهم میکند. از دید فنی، همه گواهیهای مدرن در واقع SAN هستند، چون X.509 v3 از Extension subjectAltName استفاده میکند. اصطلاح Multi-Domain Certificate به گواهیهایی گفته میشود که بیش از یک دامنه را در SAN پوشش میدهند.
ساختار یک SAN Extension در سند ASN.1 به این شکل است:
subjectAltName ::= GeneralNames
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName ::= CHOICE {
dNSName [2] IA5String,
iPAddress [7] OCTET STRING,
...
}
سه مزیت معماری SAN:
- یک Certificate، چند سرویس: برای معماری Microservices که در آن هر سرویس روی یک زیردامنه اجرا میشود، SAN Certificate تعداد گواهیهای مدیریتی را کاهش میدهد.
- Zero-Downtime Rotation: در فرآیند Renewal، اگر تعداد دامنهها ثابت باشد، تغییر گواهی بدون Restart سرویسها انجام میشود.
- کاهش Overhead OCSP: در محیطهایی که OCSP Stapling فعال است، یک SAN Certificate بهجای چندین Certificate، تعداد درخواستهای OCSP را کاهش میدهد.
محدودیتهای SAN: تعداد دامنهها معمولاً محدود است (معمولاً تا ۱۰۰ یا ۲۵۰ دامنه بسته به CA). همچنین هر دامنه اضافه، هزینه صدور را بالا میبرد. برای مطالعه بیشتر درباره انتخاب گواهی مناسب، بررسی اعتبار SSL سایت و SSL و HTTPS در امنیت وب را ببینید.
Single-Domain: پیشفرض کمریسک
گواهی Single-Domain فقط یک دامنه مشخص (و معمولاً نسخه www آن) را پوشش میدهد. در تجربه پروژههای سازمانی، با وجود محبوبیت Wildcard، Single-Domain همچنان کمریسکترین انتخاب برای محیطهای Production است:
- Blast Radius محدود: در صورت افشای Private Key، فقط یک سرویس در معرض خطر است، نه کل زیرساخت.
- مدیریت ساده: در سیستمهای Autorenew مثل Certbot و ACME، Single-Domain بهعنوان سادهترین سناریو شناخته میشود.
- Audit ساده: در CT Logs، هر دامنه بهطور مستقل ثبت میشود که Auditing را سادهتر میکند.
هزینه عملی: تعداد بالای گواهیها در سازمانهای بزرگ. برای محیطهایی با بیش از ۲۰ سرویس، معمولاً استفاده از Wildcard یا SAN اقتصادیتر است. توصیه من: ترکیب Single-Domain برای سرویسهای حساس (پرداخت، احراز هویت، پنل مدیریت) و Wildcard برای سرویسهای کمریسک (CDN، Static Assets).
UCC و SAN برای Microsoft Exchange
UCC یا Unified Communications Certificate، اصطلاحی تجاری است که بیشتر در اکوسیستم Microsoft برای گواهیهای SAN با تعداد بالای دامنه بهکار میرود. در عمل، UCC همان SAN Certificate است با تمرکز روی سرویسهای Exchange و Skype for Business. برای یک سازمان با یک Exchange Server، تعداد دامنههای پوششدادهشده معمولاً بین ۵ تا ۱۰ دامنه است (مثل mail.example.com، autodiscover.example.com، smtp.example.com).
Code Signing، Email و Client Certificate
سه نوع گواهی دیگر که در تقسیمبندی عمومی کمتر دیده میشوند ولی در معماری سازمانی نقش مستقیم دارند:
- Code Signing Certificate: برای امضای دیجیتال کد (Application، Installer، Driver). در ویندوز، SmartScreen بر پایه این گواهی تصمیم میگیرد که یک فایل ناشناخته را با هشدار نشان دهد یا نه. از سال 2019، همه Code Signing Certificateها باید روی HSM (Hardware Security Module) ذخیره شوند.
- Email Certificate (S/MIME): برای امضای دیجیتال ایمیل و رمزگذاری. در محیطهای Enterprise، برای تأیید هویت فرستنده و جلوگیری از Spoofing بهکار میرود.
- Client Certificate (Mutual TLS): برای احراز هویت کلاینت در معماری mTLS. در Zero Trust Architecture و Service Mesh، این نوع گواهی برای تأیید هویت سرویس به سرویس استفاده میشود. برای مطالعه بیشتر درباره امنیت API، چگونه REST API امن بسازیم و احراز هویت در API را ببینید.
Chain of Trust و Root Program
زنجیره اعتماد گواهی، در سه سطح تعریف میشود: Root Certificate، Intermediate Certificate و Leaf Certificate. Root Certificate در Trust Store مرورگر قرار دارد و توسط چهار برنامه اصلی توزیع میشود:
- Mozilla Root Program: پیشرو در اعمال استانداردهای سختگیرانه. مرورگر Firefox از این Root Store استفاده میکند.
- Apple Root Program: مورد استفاده Safari و iOS/macOS.
- Microsoft Root Program: مورد استفاده Edge و ویندوز.
- Chrome Root Store: از نسخه Chrome 105 (سال 2022)، گوگل Root Store مستقل خودش را راهاندازی کرد که وابستگی به Root Store سیستمعامل را حذف میکند.
در بازبینیهای امنیتی، این Root Storeها تفاوتهای ظریفی دارند. برای مثال، Mozilla یک CA را به دلایل مختلف از Root Store خود حذف کرده است؛ در حالی که همان CA ممکن است در Microsoft Root Store باقی بماند. اثر عملی: در سازمانهایی که کاربران از مرورگرهای مختلف استفاده میکنند، باید مطمئن شوند که گواهی روی همه Root Storeها معتبر است.
ابزار Qualys SSL Labs Server Test یکی از دقیقترین تحلیلگرهای Chain of Trust است. توصیه عملی: در بازبینیهای دورهای، حداقل هر شش ماه، گرید SSL Labs را چک کنید. گرید A+ نشاندهنده Chain of Trust سالم است.
Certificate Transparency (RFC 6962)
Certificate Transparency یا CT، یک مکانیزم عمومی Audit برای گواهیهای SSL است که در RFC 6962 تعریف شده است. CT سه هدف اصلی دارد:
- تشخیص گواهیهای جعلی: هر CA موظف است همه گواهیهای صادرشده را در CT Logs عمومی ثبت کند.
- پایش فعال: هر دامنهدار میتواند CT Logs را مانیتور کند و اگر گواهی ناشناسی برای دامنهاش صادر شده، بلافاصله متوجه شود.
- شفافیت صنعتی: در بازبینیهای امنیتی، CT Logs بهعنوان یک منبع عمومی برای تحلیل رفتار CAها بهکار میرود.
از سال 2018، مرورگرهای اصلی (Chrome، Firefox، Safari) بهطور اجباری CT را برای همه گواهیها اعمال میکنند. یعنی گواهی که در CT Logs ثبت نشده باشد، در این مرورگرها بهعنوان نامعتبر شناخته میشود.
سرویسهای پایش CT که در تجربه پروژههای سازمانی بهکار میگیرم: crt.sh برای جستجو، و Facebook CT Monitor برای پایش فعال. توصیه: برای هر دامنه مهم سازمانی، حتماً یک Alert روی CT Logs فعال کنید.
Certificate Transparency، Auditing صنعتی گواهیها را از یک فرآیند پنهان به یک دفتر عمومی تبدیل کرد.
ACME، Let’s Encrypt و Autorenew
پروتکل ACME (Automatic Certificate Management Environment) در RFC 8555 تعریف شده و توسط Let’s Encrypt پیادهسازی شد. هدف اصلی ACME، خودکارسازی کامل چرخه صدور، نصب و تمدید گواهی است. در معماری مدرن، ACME سه Challenge برای تأیید مالکیت دامنه ارائه میدهد:
- HTTP-01: سرور یک فایل مشخص را در مسیر
/.well-known/acme-challenge/قرار میدهد. مناسب Single-Domain و SAN (بدون Wildcard). - DNS-01: رکورد TXT مشخصی روی دامنه اضافه میشود. پیشنیاز Wildcard Certificate.
- TLS-ALPN-01: تأیید از طریق ALPN در لایه TLS انجام میشود. مناسب سناریوهایی که فقط پورت 443 باز است.
مکانیزم Autorenew در تجربه پروژهها از دو جنبه حیاتی است: اول، با کاهش دوره اعتبار گواهیها (روند صنعتی از 5 سال به 90 روز)، تمدید دستی عملاً غیرقابل مدیریت است. دوم، نبود Autorenew، شایعترین علت Expiry در محیط Production است. ابزارهای اصلی ACME Client: Certbot (EFF)، acme.sh، و lego (Go).
در پروژههای واقعی، برای Autorenew از سه الگو استفاده میکنم: Cron Job روزانه برای بررسی، Alerting روی گواهیهای نزدیک به Expiry (۳۰، ۱۴، ۷ روز)، و تست دورهای Restoration گواهی در محیط Staging. برای مطالعه بیشتر، ریدایرکت HTTP به HTTPS و رفع خطای SSL در وردپرس را ببینید.
Validity Periods و روند کاهش آنها
یکی از تغییرات ساختاری صنعت SSL در دهه گذشته، کاهش مستمر حداکثر Validity Period گواهیها بود. جدول زیر روند را نشان میدهد:
| دوره | حداکثر Validity | تصمیمگیرنده |
|---|---|---|
| پیش از 2017 | ۳۹ ماه (بیش از ۳ سال) | CAB Forum |
| ۲۰۱۸ تا ۲۰۲۰ | ۲۷ ماه | CAB Forum |
| ۲۰۲۰ تا ۲۰۲۵ | ۳۹۸ روز (~۱۳ ماه) | Apple، Google، Mozilla |
| ۲۰۲۶ به بعد | ۲۰۰ روز (پیشنهاد صنعتی) | Apple، Google، Mozilla |
| هدف بلندمدت | ۹۰ روز (پیشنهاد Google) | در حال بحث |
محرک این کاهش، افزایش امنیت از طریق چرخههای سریعتر Revocation و کاهش پنجره افشای Private Key است. اثر معماری این تغییر: Autorenew از یک ویژگی اضافی به یک ضرورت تبدیل شده است. در پروژههایی که با 90 روز Validity کار میکنند، مدیریت دستی گواهی عملاً غیرممکن است و ACME به یک جزء زیرساخت تبدیل میشود.
بنچمارک فنی: DV در برابر OV و EV
در یکی از پروژههای SaaS، بنچمارک زیر را برای سه نوع گواهی در همان محیط سرور و همان شبکه انجام دادم (میانگین ۱۰۰۰ درخواست از یک Location مشخص):
| نوع گواهی | Handshake Time (P50) | Certificate Size | OCSP Stapling Time |
|---|---|---|---|
| DV (RSA 2048) | 94 ms | 1.2 KB | 18 ms |
| OV (RSA 2048) | 96 ms | 2.1 KB | 19 ms |
| EV (RSA 2048) | 98 ms | 3.4 KB | 21 ms |
| DV (ECDSA P-256) | 62 ms | 0.9 KB | 14 ms |
سه نتیجه مهندسی از این بنچمارک:
- تفاوت DV/OV/EV در Handshake ناچیز است: کمتر از ۵ درصد. یعنی تصمیم بین این سه، عمدتاً تصمیم امنیتی و اقتصادی است، نه عملکردی.
- ECDSA حدود ۳۵ درصد سریعتر از RSA است: در بنچمارک، Handshake با ECDSA P-256 حدود ۳۲ میلیثانیه سریعتر از RSA 2048 بود. این تفاوت در Latency شبکههای پرتاخیر محسوستر است.
- Certificate Size در Legacy Clients: برای کاربران با اتصال کند (2G/3G)، هر KB اضافه گواهی، زمان اضافه در Handshake ایجاد میکند. DV و ECDSA به دلیل اندازه کوچکتر، در این سناریوها مزیت دارند.
توصیه عملی: در محیط Production، ترکیب ECDSA + DV یا OV، بیشترین تعادل بین Performance و Security را میدهد. برای مطالعه بیشتر درباره بهینهسازی، تأثیر TTFB بر سرعت بارگذاری و Core Web Vitals چیست را ببینید.
در بنچمارکهای واقعی، تفاوت Handshake بین DV، OV و EV کمتر از ۵ درصد است؛ تصمیم اصلی در انتخاب نوع گواهی، امنیتی و اقتصادی است، نه عملکردی.
چارچوب انتخاب گواهی در مقیاس سازمانی
چارچوبی که در پروژههای سازمانی برای انتخاب نوع گواهی استفاده میکنم، بر پایه سه محور تقسیم میشود:
محور اول: نوع سرویس
- وبسایت عمومی: DV یا OV (بسته به سطح برند). برای استارتاپ و SaaS، OV کافی است.
- سرویس پرداخت یا بانکی: EV الزامی است (در برخی حوزههای قضایی).
- سرویس داخلی (Microservices): Client Certificate با mTLS.
- Application و Driver: Code Signing Certificate روی HSM.
محور دوم: گستره دامنه
- یک دامنه مشخص: Single-Domain.
- زیردامنههای یک دامنه: Wildcard.
- چند دامنه مستقل: SAN / Multi-Domain.
- ترکیب: Wildcard + SAN اضافی برای Root Domain.
محور سوم: مکانیزم مدیریت
- Autorenew با ACME: DV و SAN (بدون Wildcard).
- Autorenew با DNS API: Wildcard و SAN با تعداد بالا.
- مدیریت دستی: فقط برای سرویسهای خاص با Validity بالاتر (که در حال کاهش است).
پرسشهای تخصصی درباره انواع گواهی SSL
تفاوت DV، OV و EV در سطح فنی چیست؟
تفاوت در مکانیزم تأیید هویت است، نه در قدرت رمزنگاری. در DV، فقط کنترل دامنه تأیید میشود (معمولاً با HTTP-01 یا DNS-01 Challenge). در OV، هویت سازمان نیز تأیید میشود (با بررسی مدارک ثبت شرکت). در EV، فرآیند تأیید سختگیرانهتر است و شامل مکاتبه رسمی با سازمان میشود. قدرت رمزنگاری در هر سه یکسان است. برای مطالعه بیشتر، SSL چیست و چرا سایت به آن نیاز دارد.
آیا Wildcard Certificate برای Production مناسب است؟
برای محیطهای Production با ترافیک حساس، Wildcard Blast Radius بالایی دارد. اگر Private Key لو برود، همه زیردامنهها در معرض خطر قرار میگیرند. توصیه: Wildcard برای Staging و محیطهای داخلی، Single-Domain یا SAN برای Production. برای مطالعه بیشتر، SSL Wildcard چیست.
چرا Certificate Transparency در سالهای اخیر اهمیت بیشتری پیدا کرده؟
چون CT Logs به یک دفتر عمومی تبدیل شده که میتواند صادرکنندههای غیرمجاز را در سطح صنعت شناسایی کند. از سال 2018، مرورگرهای اصلی CT را اجباری کردند. برای یک سازمان، پایش فعال CT Logs میتواند صادر شدن گواهی ناشناس روی دامنههایشان را در چند دقیقه اول تشخیص دهد.
ACME با DNS-01 برای Wildcard چطور کار میکند؟
در Challenge نوع DNS-01، سازمان باید یک رکورد TXT با مقدار مشخص روی دامنه ایجاد کند. ACME Client با API ارائهدهنده DNS (مثل Cloudflare، Route 53، DigitalOcean) این رکورد را بهطور خودکار اضافه و حذف میکند. بدون این API، Autorenew Wildcard نیازمند مداخله دستی است که با کاهش Validity Periods عملاً غیرممکن میشود.
چرا Chrome Root Store مستقل راهاندازی شد؟
قبل از 2022، Chrome از Root Store سیستمعامل (Windows، macOS، Linux) استفاده میکرد. این وابستگی، تفاوتهای Security Policy بین سیستمعاملها را به Chrome تحمیل میکرد. با راهاندازی Chrome Root Store در نسخه 105، گوگل کنترل کامل روی Trust Decisions پیدا کرد و امکان اعمال استانداردهای یکسان در همه سیستمعاملها را بهدست آورد.
آیا Validity Period گواهیها در آینده به 90 روز کاهش مییابد؟
پیشنهاد Google در 2024 برای کاهش Validity به 90 روز در حال بحث است. اگر اعمال شود، Autorenew با ACME عملاً اجباری میشود. در حال حاضر، روند صنعتی در جهت کاهش تدریجی است: 398 روز در 2020، 200 روز در 2026 و 90 روز بهعنوان هدف بلندمدت.
تفاوت RSA و ECDSA در گواهی SSL چیست؟
در بنچمارکهای واقعی، ECDSA P-256 حدود ۳۵ درصد سریعتر از RSA 2048 در Handshake است و اندازه Certificate و Key کوچکتری دارد. محدودیت: پشتیبانی ECDSA در مرورگرهای قدیمی (IE 11، Android 4.x) ناقص است. برای محیطهای امروزی، ECDSA انتخاب پیشفرض است.
آیا گواهی Let’s Encrypt برای محیط Production مناسب است؟
بله. Let’s Encrypt از ACME برای صدور گواهیهای معتبر استفاده میکند و در همه مرورگرهای اصلی شناخته شده است. محدودیت اصلی: Validity Period 90 روزه، که Autorenew را ضروری میکند. برای محیطهای Production با ترافیک بالا، ترکیب Let’s Encrypt + ACME Autorenew + Monitoring قوی توصیه میشود.
چرا گاهی Certificate Chain ناقص باعث خطا در بعضی مرورگرها میشود؟
مرورگرها برای تأیید Leaf Certificate، باید کل زنجیره تا Root Certificate را داشته باشند. Root در Trust Store موجود است، ولی Intermediate باید توسط سرور ارسال شود. اگر Intermediate ارسال نشود، برخی مرورگرها (خصوصاً Android قدیمی) خطای اعتبار میدهند. ابزار SSL Labs این مشکل را بهعنوان "Chain issues: Incomplete" نشان میدهد.
گواهی بهعنوان یک قرارداد لایهای
گواهی SSL در معماری مدرن، پیش از یک فایل، یک قرارداد لایهای است که سه محور مستقل را در بر میگیرد: محور Validation Level (DV/OV/EV)، محور Coverage (Single/Wildcard/SAN)، و محور Purpose (Server/Code Signing/Email/Client). در هر محور، پارامترهای قابلاندازهگیری تصمیمگیری را از سطح انتخاب عمومی به سطح مهندسی منتقل میکنند: Blast Radius در Wildcard، Autorenew در ACME، Monitoring در CT Logs، و Benchmarks در Handshake. سه اصل که در پروژههای سازمانی به آنها پایبندم: اول، برای هر سرویس Production، نوع گواهی را بر اساس نوع ترافیک و گستره دامنه انتخاب کنید، نه بر اساس قیمت. دوم، Autorenew با ACME + DNS API را از همان ابتدا پیاده کنید؛ Validity Periods در حال کاهش است و مدیریت دستی دیگر مقیاسپذیر نیست. سوم، پایش CT Logs و Alerting روی Certificate Expiry را بهعنوان بخشی از Infrastructure as Code درآورید. تجربههای خود از انتخاب نوع گواهی در پروژههای سازمانی، از بنچمارکهای واقعی RSA و ECDSA، یا از چالشهایی که در Autorenew و Chain of Trust دیدهاید را در دیدگاهها بنویسید؛ مخصوصاً اگر به Trade-off غیرمنتظره بین Cost، Security و Manageability برخوردهاید، آن تجربهها برای مهندسان زیرساخت بعدی از هر مستند رسمی ارزشمندتر است.