By default, WinRM requires mutual authentication and strict cryptographic verification when operating over HTTPS. For a successful connection, the certificate used must explicitly allow Client Authentication في حدودها Enhanced Key Usage (EKU) إذا كانت هذه الخاصية مفقودة، أو إذا كانت تحتوي فقط على "مصادقة الخادم"، فإن ويندوز ترفض الاتصال لمنع الوصول غير المصرح به أو هجمات الرجل في الوسط.
إصلاحات خطوة بخطوة
To resolve this issue, you must ensure that the certificate being used contains the Client Authentication إيكو (معرّف الكائن: 1.3.6.1.5.5.7.3.2 أدناه طريقتان شائعتان لإصلاح هذا.
الطريقة 1: اطلب شهادة جديدة مع الـ EKU الصحيح (موصى به)
إذا كنت تستخدم خدمة شهادة Active Directory الداخلية (AD CS) أو سلطة شهادة أخرى (CA) ، يجب عليك إصدار شهادة تحتوي على كل من مصادقة الخادم والعميل.
- افتح الباب Run مربع الحوار عن طريق الضغط Windows Key + R.
- النوع
mmcو اضغط Enter لفتح وحدة التحكم في مايكروسوفت. - انقر File في القائمة العليا، ثم حدد Add/Remove Snap-in....
- اختر Certificates من القائمة اليسرى وانقر Add.
- اختر Computer account ، انقر Next, اختر Local computer و انقر Finish انقر OK لإغلاق النافذة
- توسيع Certificates (Local Computer) > Personal > Certificates.
- انقر بزر الماوس الأيمن على المساحة الفارغة في النافذة الوسطى، حدد All Tasks و انقر Request New Certificate....
- انقر Next من خلال الوسيط حتى ترى قوالب شهادة مؤسستك.
- اختر قالب يحتوي على كليهما Server Authentication و.. Client Authentication (مثل النموذج الافتراضي "الحاسوب").
- انقر Enroll و بعد ذلك Finish.
طريقة 2: تكوين WinRM HTTPS Listener لاستخدام الشهادة الجديدة
بمجرد إنشاء شهادة صالحة، يجب عليك تكوين WinRM لاستخدامها عن طريق ربط بصمة الإبهام الخاصة بها بخدمة WinRM.
- في نفس
mmcمن الطريقة 1، انقر مرتين على الشهادة المسجلة حديثا تحت Personal > Certificates. - إذهبي إلى Details علامة التبويب، الانتقال لأسفل إلى أسفل، ونقر على Thumbprint.
- نسخ السلسلة السادسة عشرية من الصندوق (على سبيل المثال،
a1b2c3d4e5...حذف أي مساحات بين الحروف والأرقام حتى تشكل سلسلة واحدة مستمرة. - افتح قائمة بدء ويندوز ابحث عن Command Prompt ، انقر بزر الماوس الأيمن عليه، واختيار Run as administrator.
- Delete the existing broken WinRM HTTPS listener by typing the following command and pressing Enter:
winrm delete winrm/config/Listener?Address=*+Transport=HTTPS - Create the new listener utilizing your corrected certificate thumbprint by running this command (replace
YOUR_CERTIFICATE_THUMBPRINTمع السلسلة النظيفة التي نسختها في الخطوة 3:winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="YOUR_COMPUTER_FQDN";CertificateThumbprint="YOUR_CERTIFICATE_THUMBPRINT"} - إعادة تشغيل خدمة WinRM لتطبيق جميع التعديلات على الفور عن طريق تشغيل:
net stop winrm && net start winrm
الطريقة 3: تعطيل التحقق من صحة شهادة العميل مؤقتاً (الحل الحالي)
If you cannot immediately issue a new certificate and need to restore remote management urgency, you can configure the WinRM service to bypass the client certificate EKU validation requirement. Note: This lowers deployment security and should only be used as a temporary solution.
- افتح قائمة بدء ويندوز ابحث عن PowerShell ، انقر بزر الماوس الأيمن عليه، واختيار Run as administrator.
- قم بتشغيل الأمر التالي للتحقق من إعدادات التحقق من صحة شهادة العميل الحالية:
Get-ChildItem WSMan:\localhost\Service\Auth - قم بتعطيل شرط شهادات العميل الصحيحة عن طريق تعديل تكوين WSMan:
Set-Item WSMan:\localhost\Service\Auth\Certificate -Value $false - إذا كنت تقوم بالاتصال من جهاز عميل، فقد تحتاج أيضًا إلى إرشاد عميلك بتجاهل إخفاقات التحقق من الصحة خلال فترة الانتقال:
Set-Item WSMan:\localhost\Client\Auth\Certificate -Value $false - إعادة تشغيل خدمة WinRM باستخدام PowerShell لضمان تأثير التغييرات:
Restart-Service winrm
قد يكون هناك بعض الأخطاء. Learn Microsoft