حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش ساخت Self Signed Certificate در ویندوز 10 به زبان ساده

امروز قصد تست آزمایشی یک وب سایت رو به صورت لوکال داشتم و باید سایت رو با پروتکل https تست می کردم. طبق روال گذشته یک SSL ایجاد کردم و شروع به تست کردم، اما مشکلی که وجود داشت این بود که این SSL به عنوان یک SSL معتبر شناخته نمیشد. بعد از کلی جستجو تو اینترنت با یک روش ساده آشنا شدم که اینجا این مورد رو با دوستان به اشتراک میزارم. برای ایجاد یک SSL Certificate معتبر Self-Signed می تونید از دستور New-SelfSignedCertificate در محیط Powershell استفاده کنید. فرض کنید که قصد داریم به صورت Local سایتی رو تست کنیم، داخل فایل Hosts اطلاعات زیر رو وارد کردیم:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
127.0.0.20    mysite.com
127.0.0.20    www.mysite.com
127.0.0.20    sd1.mysite.com
127.0.0.20    sd2.mysite.com
127.0.0.20    sd3.mysite.com

داخل IIS هم یک Application ایجاد کردیم با Binding های مورد نیاز. حالا باید یک Certificate ایجاد کنیم که برای دامنه mysite.com جواب کار مارو بده. برای اینکار کافیه دستور زیر رو اجرا کنیم:

New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "mysite.com" -FriendlyName "MySiteCert" -NotAfter (Get-Date).AddYears(10)

دستور بالا یک Certificate در Certificate با اعتبار 10 سال برای ایجاد ایجاد خواهد کرد. بعد از ایجاد Cerficicate باید اون و داخل Trusted Root Certification Authorities کپی کنیم. تو قسمت جستجوی ویندوز 10 عبارت certificate رو تایپ کنید و ابزار Manage Computer Certificates رو اجرا کنید. به ترتیب مراحل زیر رو طی کنید تا Certificate شما قابل استفاده بشه:

  1. به بخش Persoan -> Certificate برید
  2. از لیست نمایش داده شده گزینه mysite.com رو پیدا کنید و انتخاب کنید.
  3. از پنل سمت چپ بخش Trusted Root Certification Authorities -> Certificates رو باز کنید. (دقت کنید، این بخش رو نباید انتخاب کنید، باز کنید که فقط نمایش داده بشه)
  4. روی mysite.com راست کلیک موس رو نگه دارید و اون رو به بخشی که تو مرحله 3 باز کردیم بکشید.
  5. از منوی ظاهر شده گزینه Copy Here رو انتخاب کنید.

خوب، SSL ما آماده استفاده هست، کافیه IIS رو باز کنید، برای سایت مورد نظرتون یک Binding جدید https ایجاد کنید و از لیست Certificate ها گزینه mysite.com رو انتخاب کنید. دقت کنید که گزینه Require Server Name Indication رو حتماً تیک بزنید. تو مرورگر کروم آدرس سایت mysite.com رو وارد کنید، خواهید دید که هیچ پیام warning ای برای SSL ایجاد شده دریافت نمی کنید.نکته بعدی ایجاد Certificate از نوع Wild-Card هست، همونطور که در بالای مطلب مشاهده کردید، آدرس هایی که تعریف کردیم شامل 3 زیر دامنه نیز بود. برای اینکه SSL ما به صورت Wild-Card باشه و زیر دامنه ها رو هم پشتیبانی کنه، دستور New-SelfSignedCertificate رو به صورت زیر استفاده می کنیم:

New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Subject "*.mysite.com" -DnsName "mysite.com", "*.mysite.com" -FriendlyName "MySiteWC" -NotAfter (Get-Date).AddYears(10)

بعد از ایجاد Certificate توسط دستور بالا، مراحل 1 تا 5 ای که بالا طی کردیم رو برای Certificate جدید طی کنید.

دقت کنید که در صورت ایجاد WildCard Certificate نیازی به ایجاد Certificate اولی نیست و مورد دوم جواب کار شما رو میده. پس فقط یکی از Certificate ها رو ایجاد کنید.روش گفته شده در این مطلب بر روی مرورگر Firefox جواب نمیده، چون این مرورگر Storage مخصوص به خودش رو داره این Certificate بر روی وب سایت هایی که به صورت نهایی Publish شدن قابل استفاده نیست و فقط برای تست میشه ازش استفاده کرد


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات