آموزش: Exchange Server Certificate

آموزش: Exchange Server Certificate

گاهی وقتا پیش اومده که موقع اتصال به Exchange خطای Certificate دریافت کنید

Image

یا موقع اتصال outlook به Exchange

Image

علت اصلی این مشکل دو چیز است:

  1. نامناسب یا نامعتبر بودن Hostname در Certificate. این hostname می تونه اسم سرور NetBIOS باشه یا URLی که برای اتصال به Exchange استفاده می شود.
  2. Certificate ی که Exchange ارائه می دهد معتبر نیست.

به نظرتون چطور این مشکل پیش میاد؟
وقتی شما Exchange 2013 or 2016 را نصب می کنید در حین پروسه نصب خاصیتی در Active Directory ایجاد می شود به نام Service Connection Point این خاصیت (AutoDiscovery) تنظیمات یا پروفایل کاربران Exchange را بصورت خودکار با اولین Login به Microsoft outlook ایجاد می کند و در نتیجه کاربران بدون هیچ گونه کار خاصی می توانند از Microsoft outlook استفاده کنند.
بصورت پیش فرض وقتی این خاصیت در Active Directory اضافه می شود با نام (NetBIOS) کامل Exchange یا Full FQDN اضافه می شود. فرض کنید اسم سرور Exch2016 باشد و اسم دومین my-city.local پس در نتیجه SCP بدین صورت ذخیره می شود.

۱
https://exch2016.my-city.local/Autodiscover/Autodiscover.xml

اگر شما برای اتصال به Exchange در این مثال از ادرس https:/exch2016.my-city.local استفاده کنید و این ادرس بر روی بقیه سرویسها مانند ECP/OWA و غیره تنظیم شده باشد. خطای Certificate دریافت نمی کنید. شاید الان با خودتون بگید چقدر خوب!!! از این به بعد نام سرور اکسچنج رو Mail ست می کنم با اینکار هم یک ادرس درست حسابی مثل بقیه می تونیم داشته باشیم و هم خطای Certificate دریافت نمی کنیم. (اینکار را فقط در سازمانی انجام دهید که یک Exchange داشته باشد در غیر اینطورت این کار را به هیچ وجه انجام ندهید بعدا دلیلشو میگم) یادتون باشه این روش فقط در داخل شبکه میتونه اعمال بشه و شما نتیجه بگیرید. اگر کاربری از بیرون به Exchange وصل بشه باز هم خطای Certificate دریافت می کنه. چون Certificate ارائه شده معتبر نیست و فقط برای کاربران داخلی معتبر است.
شما می توانید توسط دستور زیر این SCP را ببینید. (دستور را در EMS اجرا کنید)

۱
Get-ClientAccessService -Identity <Exchange Server> | Select AutodiscoverServiceInternalUri

کاربران سازمان وقتی می خواهند از SCP استفاده کنند از HTTPS (SSL) استفاده می کنند. این نوع اتصال برای بقیه سرویسهای Exchange هم صدق میکند.
وقتی که کانال ارتباطی بین کاربران وexchange بصورت HTTPS SSL باشد Certificate ی که Exchange ارائه می دهد باید شرایط زیر را داشته باشد:

  1. Certificate باید از یک CA متعبر صارد شده باشد.
  2. تاریخ انقضای Certificate سپری نشده باشد.
  3. نام Certificate باید Name سرور (NetBIOS) یا URL ی باشد که کاربران با استفاده از آن به Exchange وصل شوند.

خب الان ما چطور خطای Certificate را حل کنیم؟؟؟؟؟

  1. URL مورد استفاده کاربران را بر روی Autodiscovery و بقیه سرویسها را تنظیم کنیم.
  2. برای این URL یک Certificate معتبر نصب می کنیم.

قبل از اینکه دو روش بالا را توضیح دهم اجازه بدید درباره این صحبت کنیم که چرا نباید از اسم سرور NetBIOS برای اتصال و ایجاد Certificate استفاده کنیم.
سناریو:
فرض کنید ما یک سرور Exchange داشته باشیم با اسم (NetBIOS)، Mail و می خواهیم کاربران داخلی وخارجی بدون دریافت خطای Certificate به این سرور وصل شوند. ادرسی که بقیه برای اتصال به این سرور استفاده می کنند بدین صورت است:

۱
https://mail.my-city.com

برای اینکه بتوانم با این ادرس از داخل وخارج سازمان بدون دریافت خطای Certificate وصل شوم اولین قدم تنظیم ادرس بالا بر روی Service های مانند ActiveSync, ECP, OWA و … می باشد و قدم دوم خرید یک Certificate بر اساس اسم سرور می باشد. بعد ازانجام مراحل بالا می توانید به هدف خود برسید.
تا وقتی که یک سرور در ساختار داشته باشید مشکل خاصی ندارید مشکل زمانی پیش میاد که قصد دارید چندین سرورExchange اضافه کنید.
مثلا چه مشکلی پیش میاد؟؟؟؟؟ D:
در بالا اگر توجه کنید اسم Hostname سرور با ادرسی که کاربران برای اتصال استفاده می کنند یکی هستش و Certificateی که صادر شد بر اساس NetBIOS یا اسم سرور می باشد. در نتیجه این certificate فقط برای این سرور معتبر است در این سناریو شما توانائی ایجاد Load Balancing را ندارید. با اولین اتصال به سرورهای دیگر به عنوان مثال mail-02 or mail-03 خطای Certificate دریافت میکنید.
الان چطور می توان این مشکل در این سناریو را حل کرد؟؟؟
نوع Certificate را از NetBios آن سیستم به URLی که از آن برای اتصال استفاده می کنند تنظیم کنید.
پس در نتیجه سناریوی بالا فقط برای سازمانهای کوچک استفاده میشه ولی برای سازمانهای بزرگ که از Load Balancing استفاده میکنند مناسب نیست. و همیشه سعی کنید طبق URL درخواست Certificate دهید نه اسم NetBIOS.
در این آموزش قصد دارم نحوه تنظیم SCP و Virtual Directory ها ونحوه درخواست Certificate ودر آخر اعمال Certificate در exchange را توضیح بدم.

تنظیمات Virtual Directory


سناریو:
نحوه تنظیم SCP و Virtual Directoryها.
در این قسمت نام دومین من My-city.local هستش. و می خواهم کاربران داخلی و خارجی با نام mail.my-city.com به Exchange وصل شوند. همچنین DNS Public در خود سازمان در قسمت DMZ نگهداری می شود.
قبل از هر گونه تعقیری اجازه بدید تنظیمات پیش فرض Exchange را چک کنیم.
اسکریپت GetExchangeURLs.ps1 که توسط PAUL CUNNINGHAM ایجاد شده را از سایت زیر دانلود کنید:

۱
https://github.com/cunninghamp/ConfigureExchangeURLs.ps1

وآن را بدین صورت در EMS اجرا کنید:

۱
.\GetExchangeURLs.ps1 -Server <Exchange Server>
Image

بصورت خیلی کامل وجامع تمام اطلاعات را می توان در تصویر بالا دید.
خب!!!
نکته: قبل از تنظیم SCP و Virtual Directory حتما A Record و بقیه پارامترها را ایجاد. کنید.

Image

و مطمئن شوید که ادرس mail.my-city.com بصورت صحیح Resolve شود:

Image

بعد از انجام مراحل بالا باید Virtual Directory ها را بر اساس ادرس Mail.My-City.Com بر روی Internal URL و External URL تنظم کرد.
من برای اینکار از اسکریپت PAUL CUNNINGHAM استفاده می کنم.
برای اطلاع بیشتر درباره این اسکریپت و نحوه اجرای آن لینک زیر را بخوانید:

۱
http://exchangeserverpro.com/powershell-script-configure-exchange-urls/
Image

الان اگر دوباره تنظیمات بالا را چک کنم

Image

تمام تعقیرات ایجاد شده اند حتی SCP

درخواست Certificate


وقتی که تعقیرات بالا را با موفقیت انجام دادید نوبت به درخواست Certificate برای ادرس mail.my-city.com هستش.
برای اینکار وارد قسمت Server و Certificate شوید:

Image

اگر وارد یکی از تنظیمات Certificateها شوید در قسمت سرویس میتوانید ببینید هر Certificate به متعلق به چه سرویسهای است.

Image

برای درخواست Certificate در قسمت بالا علامت + را کلیک کنید

Image

که دو گذینه وجود دارد. گذینه اول درخواست Certificate از یک CA معتبر و گذینه دوم ایجاد یک Self-Sign
Next کنید در صفحه بعدی یک اسم با معنی بنویسید و Next

Image

در این قسمت اگر می خواهید یک Wildcard certificate درخواست بدید گذینه بالا را فعال و Root Domain خود را بنویسید. ما با این گذینه کاری نداریم. Next کنید.
در قسمت بعدی محل ذخیره سازی Certificate را مشخص کنید و next
در این قسمت هر سرویسی که کاربران میخواهند از آن استفاده کنند را انتخاب و آن را Edit کنید و ادرسی که استفاده می کنند را وارد کنید:

Image

Image

NEXT کنید. در صفحه بعدی

Image

شما باید انتخاب کنید که این نوع Certificate از نوع URL یا NetBIOS سرور استفاده کند
در بالا Mail اسم سرور منه. در این سناریو من همه را حذف می کنم به جز mail.my-city.com و AutoDiscover.MY-CITY.COM

Image

در این قسمت اطلاعات بالا را بصورت دقیق پر کنید.
در قسمت بعدی path ذخیره سازی این فایل را مشخص و Finish کنید.

Image

این فایل را برای سازمانی که Certificate صادر می کند ارسال کنید. و طبق اطلاعاتی که در بالا وارد کرده اید Certificate برای شما ایجاد می شود.
وقتی که درخواست certificate دهید این درخواست در Exchange به صورت pending باقی می ماند.

Image

نحوه Assign کردن Certificate در Exchange سرور


من برای تکمیل این سناریو از یک CA سرور داخلی استفاده می کنم. تا آن دسته از کاربرانی که فقط Exchange را در شبکه داخلی استفاده می کنند مفید باشه.
وقتی که فایل درخواست certificate اماده شد Web Browser را باز کنید و به CA سرور وصل شوید
و مراحل زیر را انجام دهید:

Image

Image

Image

Image

بعد از دانلود Certificate باید آن را بر روی Exchange نصب کنیم برای اینکار به قسمت Certificate رفته و

Image

مسیر فایلی که دانلود کرده اید را معرفی کنید

Image

و Okay کنید.
بعد از Okay کردن Certificate شما بصورت Valid نشان داده می شود.
الان باید تنظیم کنیم که این Certificate به چه سرویسهای تعلق دارد

Image

که در بیشتر سناریوها دو گذینه بالا کفایت می کند.
بعد از اعمال تعقیرات فوق باید بتوانید به Exchange بدون هیچ گونه خطای certificateی وصل شوید.

Image

Image

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

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید