إدارة الشهادات في Windows باستخدام PowerShell

إذا كنت مسؤول نظام Windows، فقد تكون قد تم تكليفك بالعمل مع شهادات Windows. العمل مع الشهادات في Windows عادة ما يكون واحدًا من تلك المهام الإضافية التي يجب أن يتولاها مسؤول النظام. باستخدام إدارة الشهادات في Windows كأداة، يمكنك القيام بذلك!

الشهادات معروفة بتعقيداتها وصعوبة فهمها، ولكن في هذا المقال، ستحصل على فرصة لاكتشاف أن الشهادات ليست مخيفة في نظام Windows!

سيغطي هذا المقال بشكل رئيسي العمل مع الشهادات في Windows. إذا كنت ترغب في معرفة المزيد حول كيفية عمل الشهادات بشكل عام، فتحقق من مقالة الشريك لهذا المقال وهي مقالة تعليمية حول شهادة X.509.

فهم متاجر الشهادات

في إدارة الشهادات في Windows، توجد جميع الشهادات في مواقع تخزين منطقية تُشار إليها بـ متاجر الشهادات. متاجر الشهادات هي “دلاء” حيث يحتفظ Windows بجميع الشهادات التي تم تثبيتها حاليًا، ويمكن أن تكون الشهادة في أكثر من متجر.

للأسف، متاجر الشهادات ليست مفهومة بشكل جيد للعمل معها. ستقرأ عن كيفية التفريق بين هذه المتاجر وكيفية التعامل معها أدناه.

يتم وضع كل متجر في سجل Windows وفي نظام الملفات. راجع الجدول أدناه للحصول على التفاصيل. عند العمل مع شهادة في متجر، فإنك تتفاعل مع المتجر اللوجي، ولا تقوم بتعديل السجل أو نظام الملفات مباشرة. هذه الطريقة الأكثر بساطة تتيح لك العمل مع كائن واحد بينما يعتني Windows بكيفية تمثيل تلك الكائن على القرص.

أحيانًا قد ترى متاجر الشهادات تشار إليها باسم المتاجر المادية أو المنطقية. تشير المتاجر المادية إلى النظام الملفي الفعلي أو موقع التسجيل حيث يتم تخزين مفاتيح التسجيل و/أو الملفات. بينما تشير المتاجر المنطقية إلى مراجعات ديناميكية تشير إلى متجر أو أكثر من المتاجر المادية. تعتبر المتاجر المنطقية أسهل بكثير في التعامل معها من المتاجر المادية لمعظم الحالات الاستخدام الشائعة.

تخزن نظام ويندوز الشهادات في منطقتين مختلفتين – سياق المستخدم والكمبيوتر. يتم وضع الشهادة في إحدى هاتين السياقتين اعتمادًا على ما إذا كان يجب استخدام الشهادة من قبل مستخدم واحد، عدة مستخدمين، أو الكمبيوتر نفسه. لبقية هذه المقالة، سيُطلق على الشهادة في سياق المستخدم والكمبيوتر على نحو غير رسمي شهادات المستخدم وشهادات الكمبيوتر.

شهادات المستخدم

إذا كنت تنوي استخدام شهادة من قبل مستخدم واحد، فإن متجر الشهادات للمستخدم داخل مدير الشهادات في ويندوز هو الخيار المثالي. هذه هي الحالة الاستخدامية الشائعة لعمليات المصادقة المعتمدة على الشهادات مثل سلكية IEEE 802.1x.

توجد شهادات المستخدم داخل ملف تعريف المستخدم الحالي وتُعين بشكل منطقي فقط داخل سياق هذا المستخدم. شهادات المستخدم “معينة” وفريدة لكل مستخدم، حتى على نفس الأنظمة.

شهادات الكمبيوتر

إذا كان سيتم استخدام شهادة من قبل جميع المستخدمين على جهاز كمبيوتر أو عملية نظام، يجب وضعها داخل متجر في سياق الكمبيوتر. على سبيل المثال، إذا كانت ستُستخدم شهادة على خادم ويب لتشفير التواصل لجميع العملاء، فإن وضع الشهادة في متجر في سياق الكمبيوتر سيكون مثاليًا.

ستلاحظ أن متجر الشهادات في الكمبيوتر مرتبط بشكل منطقي بجميع سياقات المستخدم. يتيح هذا استخدام الشهادات الموجودة في متجر الشهادات في الكمبيوتر لجميع المستخدمين، اعتمادًا على الأذونات المكونة للمفتاح الخاص.

لمزيد من المعلومات حول المفاتيح الخاصة، تأكد من الاطلاع على المقالة X.509 Certificates Tutorial: A Sysadmin Guide.

توجد الشهادات الكمبيوتر في مفاتيح سجل الجهاز المحلي ومجلد بيانات البرنامج. أما الشهادات للمستخدمين فتوجد في مفاتيح سجل المستخدم الحالي ومجلد بيانات التطبيقات. فيما يلي تفصيل لمواقع كل نوع من المتاجر في السجل ونظام الملفات.

Context Registry Path Explanation
User HKCU:\SOFTWARE\Microsoft\SystemCertificates\ Physical store for user-specific public keys
User HKCU:\SOFTWARE\Policies\Microsoft\SystemCertificates\ Physical store for user-specific public keys installed by Active Directory (AD) Group Policy Objects (GPOs)
Computer HKLM:\SOFTWARE\Microsoft\SystemCertificates\ Physical store for machine-wide public keys
Computer HKLM:\SOFTWARE\Microsoft\Cryptography\Services\ Physical store for keys associated with a specific service
Computer HKLM:\SOFTWARE\Policies\Microsoft\SystemCertificates\ Physical store for machine-wide public keys installed by GPOs
Computer HKLM:\SOFTWARE\Microsoft\EnterpriseCertificates\ Physical store for machine-wide public keys installed by the Enterprise PKI Containers within an AD domain
Context File Location Explanation
User $env:APPDATA\Microsoft\SystemCertificates\ Physical store for user-specific public keys and pointers to private keys
User $env:APPDATA\Microsoft\Crypto\ Physical store for user-specific private key containers
Computer $env:ProgramData\Microsoft\Crypto\ Physical store for machine-wide private key containers

المتطلبات المسبقة

عبر بقية هذه المقالة، ستجد أمثلة متعددة تُظهر تفاعلات مع متاجر الشهادات في نظام تشغيل Windows. لتكرار هذه الأمثلة، تأكد من توفر المتطلبات المسبقة التالية:

  • نظام تشغيل Windows Vista أو Windows Server 2008 أو أحدث. الأمثلة المعروضة تستخدم نسخة Windows 10 Enterprise الإصدار 1903.
  • الاستمرارية في استخدام PowerShell. على الرغم من أنها ليست مطلوبة، إلا أن هذه هي اللغة التي ستُستخدم للإشارة إلى الشهادات عند الاقتضاء. الأمثلة المعروضة تم إنشاؤها جميعًا باستخدام Windows PowerShell 5.1.
  • لن تحتاج إلى أي شهادات محددة للتحقق منها لمتابعة العملية، ولكن استخدام شهادة غير موقعة ذاتيًا مفيد.

إدارة الشهادات في نظام التشغيل Windows

يوجد في نظام التشغيل Windows ثلاث طرق رئيسية لإدارة الشهادات:

  • وحدة تحكم Certificates Microsoft Management Console (MMC) (certmgr.msc)
  • PowerShell
  • أداة سطر الأوامر certutil

في هذه المقالة، ستتعلم كيفية إدارة الشهادات باستخدام وحدة تحكم Certificates MMC وPowerShell. إذا كنت ترغب في معرفة المزيد حول كيفية استخدام أداة certutil، يمكنك مراجعة وثائق Microsoft Docs.

PowerShell مقابل مدير شهادات أمان Windows

نظرًا لأنه يمكن إدارة الشهادات بعدة طرق مختلفة في نظام التشغيل Windows، فما هي الطريقة التي يجب اختيارها؟ هل يجب أن تتبع الواجهة الرسومية (MMC) أم استخدام سطر الأوامر مع PowerShell؟

ملاحظة: هذه المقالة ذات صلة بنظام إدارة الشهادات في Windows 7 ونظام إدارة الشهادات في Windows 10 باستخدام وحدة تحكم MMC.

أولاً، انظر إلى دورة حياة الشهادة. إذا كنت تنوي فقط تثبيت أو إزالة شهادة واحدة مرة واحدة، فاستخدم MMC. ولكن إذا كنت تدير العديد من الشهادات أو تجد نفسك تنفذ نفس المهمة مرارًا وتكرارًا، فقد يكون سطر الأوامر هو الأفضل. حتى إذا كنت لا تعرف كيفية كتابة نصوص PowerShell، فقد يستحق التعلم إذا كان لديك العديد من الشهادات المختلفة التي تحتاج إلى إدارتها.

دعنا نلقي نظرة أولاً على كيفية اكتشاف الشهادات المثبتة على نظام التشغيل Windows باستخدام كل من مدير الشهادات و PowerShell.

باستخدام مدير الشهادات في Windows (certmgr.msc)

لعرض الشهادات باستخدام MMC ، قم بفتح مدير الشهادات من قائمة “البدء” واكتب certmgr.msc. سيتم عرض MMC الخاص بشهادات Windows. ستوفر هذه العرض الأولي نظرة عامة على جميع المتاجر المنطقية المعروضة في النافذة اليسرى.

يمكنك رؤية في الصورة أدناه أن المتجر المنطقي مسؤولو جذر الشهادات الموثوق بهم محدد.

Trusted Root Certification Authorities store

عرض المتاجر الفعلية

بشكل افتراضي ، لن يظهر مدير الشهادات في Windows المتاجر الفعلية الفعلية. لعرض المتاجر ، انقر على عرض ثم على خيارات. سترى بعد ذلك خيارات لاختيار عرض المتاجر الفعلية للشهادات. يجعل تمكين هذا الخيار تحديد المسارات الخاصة داخل Windows أسهل.

Figure 2 – The Certificates MMC View Options with Physical certificate stores selected.

يمكنك الآن رؤية وجود حاويات إضافية تظهر تحت المتجر المنطقي مسؤولو جذر الشهادات الموثوق بهم في المثال المعروض سابقًا. لا تزال الشهادات مجمعة بالنسبة لمتاجرها المنطقية ، ولكن يمكنك الآن رؤية المتجر الفعلي “السجل”.

Inspecting the physical cert stores

فحص السمات في مدير الشهادات في Windows

هناك العديد من السمات التي يمكنك رؤيتها عند عرض الشهادات باستخدام MMC. على سبيل المثال ، من المحتمل أن ترغب في تحديد شهادات محددة.

أسهل طريقة لتحقيق ذلك هو من خلال الإشارة إلى قيمة ملحق الرقم التسلسلي أو بصمة الإبهام للشهادة. إذا تم توقيع الشهادة من قبل سلطة شهادات (CA)، فستحتوي على رقم تسلسلي عند الإصدار. تُحسب بصمة الإبهام في كل مرة يتم فيها عرض الشهادة.

يمكنك رؤية بعض السمات للشهادة عند فتحها في MMC كما هو موضح أدناه.

Inspecting a Windows certificate

من المهم تحديد ميزة واحدة مهمة وهي المفاتيح الخاصة المضمنة. يمكن أن تحتوي الشهادات في Windows أيضًا على مفتاح خاص مقابل. يتم تخزين هذه المفاتيح الخاصة في متاجر فيزيائية مقابلة كملفات مشفرة.

للتمييز بسرعة بين الشهادة مع وبدون مفتاح خاص مقابل، انظر إلى رمز الشهادة. في مدير الشهادات في Windows، إذا بدا الرمز ببساطة كقطعة من الورق مع شريط، فلا يوجد مفتاح خاص مقابل. إذا كانت الشهادة تحتوي على مفتاح خاص، سترى مفتاحًا في رمز MMC، وسترى مفتاحًا في أسفل علامة التبويب العامة عند فتح الشهادة.

Certificate without an embedded private key

استخدام PowerShell

مثلما يمكنك فعل ذلك باستخدام MMC، يمكنك عرض الشهادات وإدارتها باستخدام PowerShell أيضًا. دعنا نتفقد الشهادات أولاً في متاجرها الفيزيائية (قاعدة السجل ونظام الملفات).

حسب المتجر الفيزيائي

باستخدام cmdlet PowerShell Get-ChildItem، يمكنك تعداد جميع المفاتيح والقيم داخل مسار مفتاح السجل الأصلي HKCU:\Software\Microsoft\SystemCertificates\CA\Certificates\.

الأمر أدناه سيعدد جميع الشهادات المسجلة حاليًا للمستخدم المسجل في المخزن المنطقي معتمدو السلطة الوسيطة.

Get-ChildItem -Path HKCU:\Software\Microsoft\SystemCertificates\CA\Certificates\

كل إدخال في سجل النظام الذي تشاهده سيتوافق مع بصمة الإصبع للشهادة لسلطة الاعتماد الموثوق بها وشهادتها في الخاصية المقابلة. يمكنك رؤية مثال للنتيجة أدناه.

Results of the installed certificates from the example commands, limited to the first 5 entries.

مخزن آخر شائع هو المخزن الشخصي. توجد شهاداتك لهذا المخزن على نظام الملفات بدلاً من السجل. في الأوامر التالية، سنعرض هذه المسارات الفيزيائية المختلفة وأغراضها.

كل ملف في الدليل المُرجع من قبل الأمر أدناه يتوافق مع شهادة مثبتة في مخزن المستخدم الحالي الشخصي.

Get-ChildItem -Path $env:APPDATA\Microsoft\SystemCertificates\My\Certificates\

كل ملف مُرجع في الأمر أدناه هو إشارة إلى كائن لمفتاح خاص تم إنشاؤه بواسطة مزود تخزين المفاتيح (KSP). يتوافق اسم الملف مع معرف المفتاح الرئيسي للموضوع للشهادة. ستحتوي كل مفتاح خاص تقوم بتثبيته على ملف مقابل.

Get-ChildItem -Path $env:APPDATA\Microsoft\SystemCertificates\My\Keys\

كل ملف في الدليل المُرجع من قبل الأمر أدناه هو الحاوية الفريدة للمفتاح الخاص المشفر الذي تم إنشاؤه بواسطة KSP. لا يوجد علاقة مباشرة بين اسم الملف والشهادة، لكن الملف هو الهدف المستهدف من مؤشر الأمر السابق.

Get-ChildItem -Path $env:APPDATA\Microsoft\Crypto\Keys

حسب المخزن المنطقي

نظرًا لأن العمل مع الشهادات في مساراتها المادية غير شائع، فسوف تعمل مع المتاجر المنطقية لبقية الأمثلة.

يمكن لـ PowerShell الوصول إلى المتاجر المنطقية في نظام التشغيل Windows باستخدام Cert: PSDrive. يُعيد Cert: PSDrive تعيين الشهادات إلى المتاجر المادية تمامًا مثل MMC.

للأسف، لا تعطي MMC و Cert PSDrive تسميات للمتاجر المنطقية بنفس الطريقة. فيما يلي جدول مقارنة للمتاجر الشائعة وأسمائها في كل من MMC و Cert PSDrive.

Cert: Certificates MMC
My Personal
Remote Desktop Remote Desktop
Root Trusted Root Certification Authorities
CA Intermediate Certification Authorities
AuthRoot Third-Party Root Certification Authorities
TrustedPublisher Trusted Publishers
Trust Enterprise Trust
UserDS Active Directory User Object
اختيار الشهادات

عند العمل مع الشهادات، ستحتاج إلى طريقة لتصفية واختيار الشهادات لتنفيذ العمليات المحددة. في معظم الأحيان، ستقوم بتصفية واختيار الشهادات استنادًا إلى قيمة امتداد محدد.

للأمثلة التالية، يجب أن تبدأ بسرد جميع الشهادات المثبتة في متجر CA الجذر.

Get-ChildItem -Path Cert:\CurrentUser\Root\

ستكون الكائنات المُعادة شهادات يمكنك استخدامها في الأمثلة التالية.

امتدادات شائعة متاحة بالفعل كخصائص لكائنات الشهادة. في المثال أدناه، تستخدم Get-Member لعرض جميع الخصائص للكائنات المعادة.

Get-ChildItem -Path Cert:\CurrentUser\Root\ | Get-Member -MemberType Properties
Figure 9 – The properties available for the returned certificate objects.

كما يمكنك رؤية في الشكل 9، بعض هذه الامتدادات، مثل Issuer، تساعد في العثور على الشهادة التي تبحث عنها. توفر الامتدادات معلومات حول الشهادة، مثل الشخص الذي تم إصدارها له، وماذا يمكن استخدامها ل، وأي قيود عليها.

في حالات الاستخدام الأكثر تعقيدًا، سترغب في البحث عن الشهادات باستخدام امتدادات أخرى، مثل قالب الشهادة المستخدم. التحدي يكمن في أن قيم هذه التمديدات تعود كمصفوفة من الأعداد الصحيحة. تتوافق هذه الأعداد مع المحتوى المشفر بتنسيق ASN.1.

الخصائص الحالية للنصوص المتاحة في الكائن تظهر أمثلة للتفاعل مع هذه القيم. في الأمر أدناه، ستقوم بجلب استخدامات المفتاح يدويًا لرؤية هذا العلاقة.

((Get-ChildItem -Path Cert:\CurrentUser\Root\ | select -First 1).Extensions | Where-Object {$_.Oid.FriendlyName -eq "Key Usage"}).format($true)

العنصر الجديد الذي نقدمه في الأمر أعلاه هو طريقة التنسيق، التي تقوم بفك تشفير ASN.1. تمرر لها قيمة بوليانية (على سبيل المثال، $true) أعلاه لتحديد ما إذا كنا نريد أن يكون الكائن المُرجَع واحد السطر أم متعدد الأسطر.

ستستخدم قيمة Thumbprint من الشهادة في الشكل 7 في الأمر أدناه. قيمة Thumbprint تُعين كمتغير PowerShell وتُستخدم لتحديد الشهادة المحددة في الأوامر أدناه.

$thumb = "cdd4eeae6000ac7f40c3802c171e30148030c072"
Get-ChildItem -Path Cert:\CurrentUser\Root\ | Where-Object {$_.Thumbprint -eq $thumb}

إنشاء شهادات ذاتية التوقيع باستخدام PowerShell

يمكن لـ PowerShell إنشاء شهادات ذاتية التوقيع باستخدام أمر New-SelfSignedCertificate. تكون الشهادات ذاتية التوقيع مفيدة للفحص حيث تتيح لك إنشاء زوج من المفتاح العام والخاص دون استخدام سلطة الشهادات.

لنقم الآن بإنشاء شهادة ذاتية التوقيع في متجر المستخدم الحالي ومتجر الجهاز المحلي لاستخدامها في أمثلة الخطوات التالية.

في المثال أدناه، يقوم PowerShell بإنشاء زوج من المفتاح العام والخاص، وشهادة ذاتية التوقيع، وتثبيتها جميعًا في متاجر الشهادات المناسبة.

PS51> New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:\CurrentUser\My'
PS51> New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:\LocalMachine\My'

استخدام الشهادات الخاصة الذاتية في خدمات الإنتاج ليس مُشجعًا، حيث أن جميع الآليات المعتمدة على الثقة غير موجودة.

استيراد/تصدير الشهادات

تعتمد عملية التشفير العام على إتاحة الوصول الواسع إلى المفتاح العام. ونظرًا لهذا المبدأ، فإنه يتعين عليك استخدام طرق قياسية لمشاركة الشهادات بفعالية. ومن مثل هذه الأهمية أيضًا حماية مفاتيحك الخاصة. يُعتبر تخزين المفاتيح الخاصة في وسائط غير قابلة للوصول، أو مع مواد الاستعادة من الكوارث، ممارسة شائعة لبعض المفاتيح الخاصة.

كلتا هاتين العمليتين تتطلب وسائل لتخزين هذه الكائنات التشفيرية في تنسيقات قياسية. يقدم التصدير الوظائف اللازمة لتخزين هذه الكائنات وضمان استخدام تنسيقات ملفات قياسية معتمدة على نطاق واسع. بينما يتيح لك التصدير جلب الكائنات التشفيرية إلى أنظمة تشغيل Windows.

استخدام مدير شهادات Windows (certmgr.msc)

يعتبر تصدير الشهادات من MMC أمرًا مباشرًا نسبيًا. لتصدير شهادة بدون مفتاح خاص، انقر فوق الشهادة في MMC، انقر على القائمة All Tasks ومن ثم على Export.

أثناء عملية التصدير، سيُطلب منك اختيار تنسيق الملف كما هو موضح أدناه. الخيارات الأكثر شيوعًا هي DER أو ترميز Base-64.

Figure 10 – Exporting a certificate with no private key or one that is marked as not exportable.

تصدير المفاتيح الخاصة

لتصدير شهادة مع مفتاح خاص مرتبط، يجب أن تفي بشرطين. يجب أن يكون لدى الحساب الذي تم تسجيل الدخول به إذن في المفتاح الخاص (فقط لشهادات الكمبيوتر)، ويجب أن يكون المفتاح الخاص معلمًا كمصدر للتصدير.

للتحقق من الأذونات لمفاتيح خاصة على جهاز الكمبيوتر المحلي، يمكنك اختيار شهادة مع مفتاح خاص، واختيار جميع المهام، وإدارة المفاتيح الخاصة من داخل MMC للشهادات. يظهر مربع الحوار الذي يفتح الإدخالات للتحكم في الوصول إلى المفاتيح الخاصة.

The Basic Security Property Page for the private keys of a certificate with the Subject of ServerName.

عندما تتوفر الشروط المسبقة هذه الاثنتان أو الثلاث، يمكنك اختيار شهادة، والنقر على جميع المهام، ثم تصدير تمامًا كما تفعل مع شهادة تحتوي فقط على مفتاح عام. عند التصدير، يجب أن يكون لديك الآن خيار لاختيار نعم، تصدير المفتاح الخاص كما هو موضح أدناه.

Certificate Export Wizard with exportable private key.

عند تصدير مفتاح خاص في نظام Windows، يمكنك حفظ الملف فقط كنوع PFX. يتم شرح هذه الأنواع وتنسيقات الترميز بالتفصيل في هذه المشاركة.

بالنسبة للإعدادات المتبقية الموضحة في ساحر التصدير، يمكنك استخدام القيم الافتراضية. الجدول أدناه يعرض ملخصًا سريعًا لكل منها.

Setting Description
Including all certificates in the certification path if possible Helps with portability of certificate issuers, and includes all pertinent public keys in the PFX
Delete the private key if the export is successful Removes the private key from the file and has few common use cases, but one example is to test access to private keys
Export all extended properties Will include any extensions within the current certificate, these relate to the certificates [specific settings]() for Windows interfaces
Enable certificate privacy Normally only the private key will be encrypted in the exported PFX file, this setting encrypts the entire contents of the PFX file
Group or user names You can use a group or user security principal from Active Directory for encrypting the contents of the PFX file, but a password is the most portable option across legacy systems or computers not joined to the same domain

استيراد الشهادات

وظيفة الاستيراد هي نفسها لجميع أنواع ملفات الشهادات المدعومة. الفارق الوحيد هو إذا كان الملف يتضمن مفتاحًا خاصًا يمكنك “وضع علامة على هذا المفتاح كقابل للتصدير”، والذي ستقرأ عنه المزيد أدناه. سيستفيد Windows من ساحر استيراد الشهادة.

Figure 12 – Certificate Import Wizard with a PFX file.

عند استخدام ساحر استيراد الشهادة لنوع PFX، ستحتاج إلى توفير كلمة المرور المستخدمة لتشفير المفتاح الخاص. فيما يلي ملخص آخر لخيارات الاستيراد.

Setting Description
Enable strong private key protection Requires a password for each access of a private key, be cautious of newer functions as they will not be supported in all software
Mark this key as exportable You should try to avoid using this setting on any end system, private keys should be treated similarly to storing passwords
Protect private key using [virtualization-based security] The setting provides more security functionality for protecting private keys from advanced malware attacks
Include all extended properties Relates to the same Windows-specific settings discussed as with exporting

شهادات توقيع PowerShell هي حالة استخدام جيدة لحماية مفتاح خاص قوي.

الوضع التلقائي للشهادات يمكن أن يكون أمرًا يتطلب الحذر. من المحتمل أن تحصل على أفضل النتائج عند تحديد متجر الشهادات يدويًا.

باستخدام PowerShell

الآن، باستخدام PowerShell، قم بتصدير إحدى الشهادات الذاتية التوقيع التي أنشأتها سابقًا. في المثال، يتم استخدام المستخدم الحالي، ولكن يمكنك استخدام أي منهما.

أدناه، تقوم باختيار شهادة في متجر Personal اللوجي الخاص بالمستخدم الحالي التي تم توقيعها ذاتيًا، مما يعني أن مُنَحها يتطابق مع الموضوع.

$certificate = Get-Item (Get-ChildItem -Path Cert:\CurrentUser\My\ | Where-Object {$_.Subject -eq $_.Issuer}).PSPath

الآن بعد اختيارك لشهادة، يمكنك استخدام الأمر Export-Certificate لحفظ ملف مشفر DER باستخدام الأمر أدناه.

Export-Certificate -FilePath $env:USERPROFILE\Desktop\certificate.cer -Cert $certificate

الآن دعنا نلقي نظرة على تصدير المفتاح الخاص أيضًا. أدناه، تقوم بالتحقق مما إذا كانت الشهادة التي اخترتها تحتوي على مفتاح خاص، إذا كان هذا لا يعيد القيمة صحيحة، فمن المحتمل أن الأمر Get-Item قد اختار الشهادة الخطأ.

$certificate.HasPrivateKey

أدناه، ستقوم بتعيين كلمة مرور لاستخدامها في تشفير المفتاح الخاص. ثم قم بتصدير الشهادة المحددة إلى ملف PFX واستخدم كلمة المرور التي أدخلتها مسبقًا لتشفير الملف.

$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILE\Desktop\certificate.pfx -Password $pfxPassword -Cert $certificate

بالمثل، مثل عملية التصدير، هناك أمرين. أمر واحد لاستيراد الشهادات وآخر لاستيراد ملفات PFX.

أدناه، سيتم استيراد الأمر Import-Certificate الملف المشفر بتنسيق DER الذي تم تصديره سابقًا إلى مخزن المستخدم الحالي الشخصي.

Import-Certificate -FilePath $env:USERPROFILE\Desktop\certificate.cer -CertStoreLocation Cert:\CurrentUser\My

لنفترض أنك ترغب في تثبيت مفتاح الخاصية لهذا الشهادة أيضًا.

$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation Cert:\CurrentUser\My -FilePath $env:USERPROFILE\Desktop\certificate.pfx

تذكر أن كلمة المرور يجب أن تكون من نوع Secure String. كما أنه إذا كنت تقوم بالاستيراد إلى مخزن الجهاز المحلي (مثل Cert:\LocalMachine\)، فيجب عليك تشغيل الأمر من سطر الأوامر بصلاحيات المسؤول المرتفعة.

في المثال أعلاه، تستخدم أيضًا معلمة Exportable مع الأمر، لتمييز المفتاح الخاص كقابل للتصدير في المستقبل. القيمة الافتراضية هي ألا يكون قابلًا للتصدير. المفاتيح الخاصة القابلة للتصدير هي اعتبارات أمان أخرى وتستحق التركيز على كيفية تأمينها بشكل أكبر.

هناك أيضًا العديد من الأشياء الأخرى التي يمكنك القيام بها مع الشهادات في نظام التشغيل Windows، لذا يجب أن تستكشف المزيد.

إزالة الشهادات باستخدام PowerShell

عند إزالة الشهادات، يجب أن تتذكر أنه لا يوجد سلة مهملات. بمجرد حذف الشهادة، فإنها تختفي. وهذا يعني أنه من الضروري التأكد من حذف الشهادة الصحيحة من خلال التحقق من المعرف الفريد، مثل الرقم التسلسلي أو قيمة البصمة.

بشكل مماثل للأمر أعلاه، في الأمر أدناه نقوم باختيار شهادة ذاتية المصادقة من مخزن المستخدم الحالي الشخصي.

$certificate = Get-Item (Get-ChildItem -Path Cert:\CurrentUser\My\ | Where-Object {$_.Subject -eq $_.Issuer}).PSPath

أدناه يمكنك رؤية بصمة البصمة والرقم التسلسلي وخصائص الموضوع للشهادة المحددة للتأكد من أنها الشهادة التي تنوي تحديدها.

$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject

تحقق مما إذا كنت قد اخترت الشهادة الصحيحة التي تنوي حذفها.

الأمر أدناه يقوم بإزالة جميع كائنات الشهادات المحددة، يرجى استخدامه بحذر. من خلال تمرير كائن الـ $certificate عبر الأنبوب إلى cmdlet Remove-Item في الأمر أدناه، ستقوم بحذف جميع محتويات الشهادات دون أي رسائل تحقق.

$certificate | Remove-Item

الملخص

خلال هذا المقال، عملت مع الشهادات في نظام التشغيل Windows، تعلمت كيفية الوصول إليها وبعض الأدوات المستخدمة عند العمل معها. هناك المزيد لاستكشافه في هذا الموضوع، بما في ذلك كيفية ربط الشهادات المثبتة بخدمات محددة، أو حتى كيفية تنفيذ بنية تحتية للمفتاح العام الخاص (PKI) عن طريق نشر سلطات الشهادات الخاصة بك.

قراءة إضافية

Source:
https://adamtheautomator.com/windows-certificate-manager/