راه اندازی AD Certificate Services با معماری استاندارد Offline Root CA

Active Directory Certificate Services in Offline Root Two-Tier Enterprise PKI Design

مقدمه: در دنیای امروزی که امنیت اطلاعات بیش از هر زمان دیگری اهمیت پیدا کرده است، استفاده از ساختارهای امن و پایدار برای مدیریت گواهینامه‌های دیجیتال به یک نیاز حیاتی تبدیل شده است. یکی از بهترین روش‌ها برای ایجاد امنیت در زیرساخت‌های کلید عمومی (PKI)، راه‌اندازی Offline Root CA است که به دلیل عدم اتصال مستقیم به شبکه، خطرات امنیتی را به حداقل می‌رساند. در این مقاله، قصد دارم به شما مراحل کامل و اصولی راه‌اندازی یک Offline Root CA را آموزش دهم. اگر به امنیت اطلاعات سازمان خود اهمیت می‌دهید، این آموزش می‌تواند نقطه شروعی برای ایجاد یک زیرساخت امن باشد.

در سناریوی Offline Root CA، یک مفهوم کلیدی در زیرساخت PKI (Public Key Infrastructure) وجود دارد که به منظور افزایش امنیت طراحی شده است. در این ساختار، Root CA (Certificate Authority) که مهم‌ترین و حساس‌ترین بخش سیستم است، به صورت آفلاین نگهداری می‌شود تا از دسترسی‌های غیرمجاز و حملات احتمالی محافظت شود.

در این رویکرد:

Root CA تنها زمانی که نیاز به صدور یا لغو گواهی‌های خاص باشد، فعال می‌شود.
وظایف روزمره صدور گواهی‌ها توسط یک یا چند Subordinate CA (Intermediate CA) که به صورت آنلاین فعالیت می‌کنند، انجام می‌شود.
این مدل باعث می‌شود که امنیت زیرساخت PKI تقویت شده و ریسک به خطر افتادن Root CA به حداقل برسد. در ادامه، به جزئیات نحوه پیاده‌سازی این ساختار و مزایای آن خواهیم پرداخت.

لازم به ذکر است برای تهیه این آموزش، از مطالب مفید و ارزشمند وبلاگ لینک آموزش اصلی استفاده شده است.

 

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

یک سرورWorkgroup داریم که نقش Offline Root CA را خواهد داشت که بعد از تکمیل مراحل آن را خاموش کرده و در زمان هایی که نیاز باشد روشن خواهیم کرد. یک سرورJoin شده خواهیم داشت که نقشEnterprise Subordinate CA را خواهد داشت. بدیهی است که حداقل یک سرور DC هم خواهیم داشت.

نکته خیلی مهم اینکه حتماً Date & Time روی سیستم ها باید درست و سینک باشند وگرنه دچار اختلال می شویم.

 

گام اول – پیکر بندی Offline Root CA

اولین کار ایجاد فایل CA Policy در مسیر گفته شده می باشد. لازم به ذکر است این اطلاعات برای کاستومایز کردن یک سری مقادیر مثل طول کلید، تعریف زمان اعتبار سرتیفیکیت، زمان اعتبار و انتشار لیست سرتیفیکیت های باطل شده و .. بر حسب نیاز ما می باشد. برای این کار پاورشل را اجرا کرده و دستور زیر را می زنیم:

notepad c:\windows\capolicy.inf

 

بر روی Enter کلیک کرده تا صفحه زیر نمایش داده شود. بر روی Yes کلیک می کنیم تا فایل در محل گفته شده ساخته شود.

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

[Version]

Signature=”$Windows NT$”

 

[Certsrv_Server]

RenewalKeyLength=4096

RenewalValidityPeriod=Years

RenewalValidityPeriodUnits=20

CRLPeriod=Years

CRLPeriodUnits=1

AlternateSignatureAlgorithm=0

LoadDefaultTemplates=0

پس از انجام این مراحل به سراغ نصب رول Certificate Server طبق دستورالعمل زیر می رویم:

 

در این مرحله به ما یادآوری می گردد که باید دقت کنیم نام سرور CA ما (Host Name) بعد از راه اندازی سرویس قابل تغییر نیست ، اگر نیاز به بازبینی این موضوع بود قبل از راه اندازی باید انجام گردد. بر روی Next کلیک می کنیم.

 

بر روی Install کلیک کرده و صبر می کنیم تا مراحل به اتمام برسد و پنجره زیر نمایش داده شود. سپس با کلیک بر روی قسمت مشخص شده اقدام به تنظیمات اولیه سرور خود می کنیم:

در صورت نیاز با Credentials یا دسترسی لازم که در اینجا Built-in Administrator می باشد (با توجه به اینکه بر روی سرور Workgroup هستیم) ادامه می دهیم.

Certificate Authority را انتخاب می کنیم و بر روی Next کلیک می کنیم.

از آنجا که این سرور Stand Alone یا همان Workgroup می باشد، قابلیت Enterprise CA غیر فعال می باشد، الزاما باید Standalone CA را انتخاب کنیم.

سپس با توجه به این که سرور Root این سناریو می باشد ، Root CA را انتخاب می کنیم. در مرحله بعدی نیز بر روی عبارت مشخص شده کلیک می کنیم.

در اینجا چون می خواهیم طول کلید Root CA Certificate را تعریف کنیم ، برای افزایش امنیت حداکثر مقدار ممکن را در نظر می گیریم.

در صفحه بعدی تنظیمات پیش فرض را تایید کرده و به مرحله بعد می رویم. لازم به ذکر است نام پیش فرض با افزودن “CA-” به انتهای نام سیستم ساخته می شود و در صورت نیاز می توانیم نام دلخواه خود را تنظیم کنیم. این نام در Certificate های صادر شده نمایش داده می شود.

حالا باید زمان اعتبار سرتیفیکیت خود CA را مشخص کنیم که پیشنهاد می گردد حداقل دو برابر زمان پیش فرض انتخاب گردد. بر روی Next کلیک می کنیم.

با کلیک بر روی Configure سرور اقدام به پیکر بندی های لازم می کند و در نهایت با مشاهده عبارت Configuration Succeeded بر روی Close کلیک کرده و پنجره را می بندیم.

حالا از مسیر Server Manager و سپس تب Tools (یا هر روش دیگری) ، اقدام به انتخاب و اجرای کنسول  Certification Authority می کنیم. سپس مراحل ذکر شده را دنبال می کنیم.

بر روی سرور CA کلیک راست کرده و Properties را انتخاب می کنیم.

در پنجره باز شده تب Extensions را انتخاب می کنیم و ردیف های گفته شده را حذف می کنیم.

از آنجایی که این سرور قرار است که خاموش باشد باید تغییراتی در آن دهیم تا CDP که محل ذخیره CRL ها است برای در دسترس بودن به سرور Subordinate تغییر کند برای این کار بر روی Add کلیک کرده و آدرس زیر را با توجه به اینکه به جای عبارت <ServerDNSName> نام FQDN سرور Subordinate را وارد می کنیم.

http://<ServerDNSName>/CertEnroll/<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl

بر روی OK کلیک می کنیم. سپس تیک قسمت های مشخص شده را می زنیم:

و بعد بر روی Apply کلیک می کنیم و در صفحه باز شده بر روی No کلیک می کنیم.

از لیست کشویی عبارت مشخص شده را انتخاب می کنیم و در این جا نیز ردیف های مشخص شده را حذف می کنیم. سپس Add را می زنیم.

در قسمت مشخص شده آدرس زیر را با توجه به اینکه به جای عبارت <ServerDNSName> نام FQDN سرور Subordinate را وارد می کنیم.

http://<ServerDNSName>/CertEnroll/<ServerDNSName>_<CaName><CertificateName>.crt

تیک قسمت مشخص شده را می زنیم و بر روی Apply کلیک می کنیم. در پنجره باز شده نیز بر روی Yes کلیک می کنیم تا سرویس Active Directory Certificate Service ریستارت شود.

به تب General در پنجره Properties رفته و بر روی View Certificate کلیک می کنیم.

به تب Details رفته و بر روی Copy to File کلیک می کنیم.

مطابق تصاویر زیر اقدام به گرفتن خروجی از Certificate می کنیم.

در این صفحه آدرس زیر را وارد می کنیم. با این توضیح که به جای <CA-NAME> نام سرور Root را می زنیم. البته برای اینکه سرتیفیکیت سرور Root مشخص باشد از یک عبارت خاص در نام استفاده می کنیم تا بعدا راحت تر بتوانیم آن را تشخیص دهیم. و بر روی Next کلیک می کنیم.

“C:\Windows\System32\CertSrv\CertEnroll\<CA-NAME>-CA.cer”

در پنجره بعدی بر روی Finish کلیک می کنیم و منتظر می مانیم تا از سرتیفیکیت Root CA خروجی گرفته شده و پیغام زیر نمایش داده شود.

 

خب پیکر بندی Offline Root CA به پایان رسید. در مرحله بعدی به پیکربندی Enterprise CA می پردازیم.

 

 

گام دوم- پیکر بندی Enterprise CA

با تکمیل تنظیمات Offline Root CA ، اکنون نوبت به راه‌ اندازی سرور Subordinate CA می ‌رسد. این سرور، با تأیید Root CA، مسئولیت صدور گواهینامه‌ ها را بر عهده خواهد داشت. در جریان این فرآیند، نقش CA به سرور اضافه و پیکر بندی می‌ شود.

پیش از شروع تنظیمات ADCS، اطمینان حاصل کنید که سرور Subordinate به دومین متصل است و شما یک حساب کاربری دومین که عضو گروه Enterprise Admins در اختیار دارید. مطابق تصاویر مراحل را پیش می بریم.

پس از اتمام نصب، روی لینک «Configure Active Directory Certificate Services on the destination server» کلیک کرده و مطابق روال گفته شده ادامه می دهیم.

حساب کاربری خود را  که باید عضو گروه Enterprise Admins باشد را وارد کرده و بر روی Next کلیک می کنیم.

از آنجا که این سرور عضو دومین می باشد ، Enterprise CA فعال می باشد و ما آن را انتخاب می کنیم.

در این مرحله نوع CA را Subordinate انتخاب کرده و بر روی Next کلیک می کنیم.

قسمت  “Create a new private key”  را انتخاب می کنیم و بر روی Next کلیک می کنیم.

در این مرحله به تنظیمات متد رمزنگاری CA می پردازیم . در صورت نیاز می توان طول کلید یا الگو ریتم های رمزنگاری را تعیین کرد. ما با تنظیمات پیش فرض ادامه می دهیم.

نام مد نظرمان برای CA را وارد می کنیم و بر روی Next کلیک می کنیم.

در اینجا باید درخواست Certificate بسازیم تا بتوانیم از سرور بالادست یا همان Root CA یک Certificate معتبر دریافت نماییم. برای این کار مسیری که فایل درخواست در آن ساخته می شود را وارد می کنیم. مسیر پیش فرض درایو C می باشد. بر روی Next در پنجره های بعدی و در نهایت بر روی Configure کلیک می کنیم. 

در این مرحله یک هشدار نمایش داده می ‌شود که نشان می ‌دهد تا زمانی که گواهینامه Root CA دریافت و روی Subordinate CA اعمال نشود، پیکر بندی به ‌طور کامل انجام و تکمیل نشده است. بر روی Close در این پنجره و پنجره بعدی کلیک می کنیم تا بسته شود.

به سرور Offline Root CA رفته و به مسیر “c:\windows\system32\certsrv\certenroll” مراجعه می کنیم. در این پوشه باید سه فایل وجود داشته باشد. تمامی فایل ‌ها را انتخاب کرده و کپی می کنیم. 

به سرور Subordinate CA برگشته و به مسیر”c:\windows\system32\certsrv\certenroll” مراجعه می کنیم. تمامی فایل ‌ها یی که در مرحله قبلی کپی کردیم را در این پوشه Paste می کنیم.

بر روی فایل Certificate که با نام CA-OR_Main خودمان در مرحله پیکر بندی Root CA خروجی گرفتیم کلیک راست کرده و آن را در سرور Subordinate CA مطابق مراحل گفته شده نصب می کنیم.

با انتخاب گزینه مشخص شده ، اقدام به انتخاب مسیر نصب Certificate می نماییم.

بر روی Next کلیک می کنیم و در مرحله با انتخاب دکمه Finish نصب Certificate را به پایان می بریم.

پس از اتمام نصب Certificate در مسیر “C:\inetpub\wwwroot” یک پوشه جدید با نام “CertEnroll” ایجاد می کنیم.

گواهینامه Root CA و فهرست CRL را از مسیر “C:\Windows\System32\CertSrv\CertEnroll” به مسیر “C:\inetpub\wwwroot\CertEnroll” کپی می کنیم. (می توان هر ۳ فایل را کپی کرد، چون اختلالی در عملکرد سرویس ایجاد نمی کند. )

به مسیر ذخیره فایل درخواست Certificate که چند مرحله بالاتر ساختیم مراجعه کرده و فایل درخواست را کپی می کنیم. ما از مسیر پیش فرض ریشه درایو C استفاده کردیم.

به سرور Root CA مراجعه کرده و فایل درخواست کپی شده در مرحله قبل را به درایو C (یا هر مسیر دلخواه) منتقل می کنیم.

روی سرور Root CA، کنسول “Certification Authority” را باز می کنیم. سپس روی نام سرور کلیک راست کرده و گزینه “All Tasks” را انتخاب می نماییم و از منوی باز شده “Submit new request…” را انتخاب می کنیم.

با کلیک بر روی دکمه Brows مسیر فایل درخواست Certificate سرور Subordinate CA را مشخص کرده و با انتخاب فایل ، بر روی OK کلیک می نماییم.

پس از آن در کنسول Certificate Authority با مراجعه به قسمت Pending Request و درخواست صدور گواهینامه ، بر روی درخواست کلیک راست کرده و از قسمت All Tasks بر روی  گزینه Issue کلیک می کنیم تا مراحل صدور گواهینامه انجام گردد. (در صورت مشاهده نکردن درخواست چند لحظه تامل نمایید تا درخواست مشاهده گردد. چند مرتبه بر روی کلید Refresh کلیک نمایید.)

پس از این کار به قسمت issued Certificate رفته و با کلیک راست کردن بر روی Certificate ، مطابق مراحل گفته شده به دقت اقدام به Export گرفتن از آن می کنیم.

پس انجام مراحل فوق با مراجعه به مسیر گفته شده فایل خروجی را کپی و به Subordinate CA منتقل کرده و مطابق آموزش ادامه می دهیم.

 

روی سرور  Subordinate CA، کنسول Certification Authority را باز کنید. سپس روی نام سرور کلیک راست کرده و گزینه All Tasks را انتخاب کنید. از منوی باز شده، گزینه Install CA Certificate را انتخاب کنید.

فایل Certificate CA که قبلا در سرور Subordinate CA و در مرحله  قبلی Paste کرده بودیم را انتخاب و بر روی Open کلیک می کنیم.

بر روی نام سرور در کنسول Certificate Authority کلیک راست کرده و از قسمت All Tasks بر روی Start Service کلیک می کنیم تا سرویس CA استارت شود

پیکر بندی Subordinate CA هم به پایان رسید. 

حالا سرورهای CA پیکر بندی شده ‌اند. برای اینکه کامپیوترها و سرور ها به Certificate هایی که توسط Subordinate Server  ایجاد می‌ شوند اعتماد کنند، باید گواهینامه Root CA به قسمت”Trusted Root Certification Authorities” اضافه شود.

این گواهینامه را می‌ توان به روش ‌های مختلفی از جمله به صورت دستی اضافه کرد، اما ساده‌ ترین راه استفاده از Group Policy است.

در این مثال، یک پالیسی جدید در Domain Controller و در Root دومین ایجاد می‌ شود.

 

گام سوم:  ایجاد Group Policy برای اعمال Root CA Certificate

برای انجام این کار بر روی DC لاگین کرده و کنسول Group Policy Management را اجرا کرده و یک پالیسی جدید ایجاد می کنیم. مطابق آموزش زیر پیش می رویم:

برای انجام این کار بر روی DC لاگین کرده و کنسول Group Policy Management را اجرا کرده و یک پالیسی جدید ایجاد می کنیم. مطابق آموزش زیر پیش می رویم:

نام مد نظر را وارد و بر روی OK کلیک می کنیم.

روی پالیسی ساخته شده کلیک راست کرده و بر روی Edit کلیک می کنیم.

ه مسیر زیر می رویم:

“Computer Configuration” -> “Policies” -> “Windows Settings” -> “Security Settings” -> “Public Key Policies”

سپس روی گزینه “Trusted Root Certification Authorities” کلیک راست کرده و گزینه “Import” را انتخاب می کنیم.

 

بر روی Next کلیک می کنیم.

بر روی Brows کلیک می کنیم

به مسیر زیر می رویم:

<subordinate-ca>\c$\inetpub\wwwroot\CertEnroll\\

به جای <subordinate-ca> نام FQDN سرور Subordinate CA را وارد می کنیم. سپس گواهینامه RootCA را انتخاب کرده و روی گزینه “Open” کلیک می کنیم.

در این پنجره و مرحله بعدی بر روی Next کلیک و در نهایت بر روی Finish کلیک می کنیم تا فایل Certificate اضافه شود.

پس از چند لحظه پیغام زیر بایستی نمایش داده شود. که بر روی OK کلیک می کنیم.

برای تست اینکه کار را درست انجام داده ایم می توانیم در کنسول Certificate Authority و قسمت Issued Certificates بررسی کنیم که DC (های) ما به صورت خودکار Certificate گرفته اند که در اینجا هر دو DC ما به درستی  Certificate گرفته اند.

خب کار تمام شد و ما توانستیم یک CA در معماری استاندارد Offline Root CA را پیاده سازی کنیم.

راه‌اندازی Offline Root CA یکی از گام‌های اساسی برای تقویت امنیت زیرساخت‌های دیجیتال هر سازمان است. با پیاده‌سازی این معماری، شما می‌توانید کنترل و مدیریت گواهینامه‌های خود را به سطحی بالاتر ارتقا دهید و خطرات مربوط به حملات سایبری را کاهش دهید.

در پایان خوشحال می شم اگه نظر یا پیشنهادی داشتید حتما با من در میان بگذارید.

موفق و پیروز باشید.

Comments (0)
Add Comment