پرش به محتوا

Active Directory Certificate Services: CA سازمانی و صدور خودکار گواهی

یک Enterprise CA راه بیندازید، قالب گواهی وب‌سرور بسازید، گواهی را با PowerShell درخواست کنید و از کلید CA نسخه‌ی پشتیبان بگیرید.

Windows Server 2025سطح: پیشرفتهبرای: Windows Server 2025، Windows Server 2022، Windows Server 2019به‌روزرسانی: ۱۷ آبان ۱۴۰۵

CA داخلی برای سرویس‌هایی که از اینترنت دیده نمی‌شوند گواهی صادر می‌کند: پورتال داخلی، LDAPS، RDP، Wi-Fi با 802.1X و امضای اسکریپت. همه‌ی کامپیوترهای دامین گواهی ریشه‌ی آن را خودکار مورد اعتماد می‌دانند.

طراحی توصیه‌شده: یک Root CA آفلاین (خارج از دامین و خاموش) و یک Issuing CA زیرمجموعه‌ی آنلاین. برای سازمان کوچک، آموزش زیر یک Enterprise Root CA تکی می‌سازد. CA را روی Domain Controller نصب نکنید.

۱. نصب نقش

با حساب عضو Enterprise Admins:

powershell
Install-WindowsFeature ADCS-Cert-Authority -IncludeManagementTools
Install-AdcsCertificationAuthority -CAType EnterpriseRootCA `
  -CACommonName 'Sahor Root CA' `
  -KeyLength 4096 -HashAlgorithmName SHA256 `
  -ValidityPeriod Years -ValidityPeriodUnits 10 -Force

۲. CRL و دسترسی به آن

کلاینت‌ها باید بتوانند فهرست ابطال (CRL) را بخوانند. اگر نتوانند، اعتبارسنجی گواهی شکست می‌خورد. دوره‌ی انتشار را تنظیم کنید و فهرست را منتشر کنید:

powershell
certutil -setreg CA\CRLPeriodUnits 1
certutil -setreg CA\CRLPeriod Weeks
certutil -setreg CA\CRLDeltaPeriodUnits 1
certutil -setreg CA\CRLDeltaPeriod Days
Restart-Service certsvc
certutil -CRL

۳. قالب گواهی وب‌سرور

  1. certtmpl.msc را باز کنید و قالب Web Server را Duplicate کنید.
  2. در تب General نام را SahorWebServer بگذارید و مدت اعتبار را ۱ سال کنید.
  3. در تب Security به گروه سرورهای وب (مثلاً Web-Servers) دسترسی Read و Enroll بدهید.
  4. در تب Subject Name گزینه‌ی «Supply in the request» بماند تا نام DNS در درخواست تعیین شود.

قالب را روی CA منتشر کنید:

powershell
Add-CATemplate -Name SahorWebServer -Force

۴. درخواست گواهی روی وب‌سرور

powershell
Get-Certificate -Template SahorWebServer `
  -DnsName portal.corp.sahor.ir, portal `
  -SubjectName 'CN=portal.corp.sahor.ir' `
  -CertStoreLocation Cert:\LocalMachine\My

گواهی جدید در Cert:\LocalMachine\My است و می‌توانید آن را به سایت IIS متصل کنید.

۵. صدور خودکار (Autoenrollment)

برای گواهی‌های کامپیوتر یا کاربر، در قالب مجوز Autoenroll را هم بدهید و در یک GPO این مسیر را فعال کنید:

Computer Configuration › Policies › Windows Settings › Security Settings › Public Key Policies › Certificate Services Client - Auto-Enrollment = Enabled، با تیک «Renew expired certificates» و «Update certificates that use certificate templates».

۶. نسخه‌ی پشتیبان از CA

از دست رفتن کلید CA یعنی باید همه‌ی گواهی‌ها را دوباره صادر کنید. بکاپ را بیرون از سرور نگه دارید:

powershell
$pw = Read-Host -AsSecureString 'Backup password'
Backup-CARoleService -Path D:\CABackup -Password $pw
reg export HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration D:\CABackup\ca-config.reg

بررسی سلامت

powershell
certutil -ping
certutil -view -restrict 'Disposition=20' -out 'RequestID,CommonName,NotAfter' csv | Select-Object -Last 10

Disposition=20 یعنی گواهی‌های صادرشده. با این خروجی گواهی‌هایی را که به‌زودی منقضی می‌شوند پیدا کنید.