فهم وإصلاح خطأ شهادة WinRM
وصف الخطأ
This error occurs when you attempt to establish a remote connection via Windows Remote Management (WinRM) using HTTPS, but the SSL/TLS certificate used to secure the connection fails validation. The WinRM client is highly strict about identity verification.
الخطأ يسلط الضوء على فشل معمارية شهادة محددة:
- Missing DNS Name: The certificate lacks a valid routing identifier (like the hostname or Fully Qualified Domain Name) inside the Subject Name أو Subject Alternative Name (SAN) الحقول.
- Presence of a UPN: الشهادة تضم خطأ User Principal Name (UPN) (على سبيل المثال،
user@domain.com) ، مما يشير إلى أنه تم إصداره لمصادقة المستخدم بدلاً من مصادقة الكمبيوتر / المضيف.
يتطلب WinRM شهادة آلة مخصصة للتحقق من أن الكمبيوتر البعيد هو بالضبط من يدعي أنه قبل تمرير بيانات اعتماد حساسة.
إصلاح خطوة بخطوة: إنشاء وربط شهادة صالحة
لإصلاح هذه المشكلة، يجب عليك إنشاء شهادة كمبيوتر متوافقة وربطها بمستمع WinRM HTTPS. اتبع هذه الخطوات بالضبط على الجهاز البعيد المستهدف.
الخطوة 1: افتح PowerShell كمسؤول
- اضغط على Windows Key على لوحة المفاتيح الخاصة بك.
- النوع PowerShell.
- انقر بجهاز الضغط الأيمن Windows PowerShell من النتائج.
- اختر Run as administrator.
الخطوة 2: إنشاء شهادة متوافقة موقعة بنفسك
قم بتشغيل الأمر التالي لإنشاء شهادة تستخدم بشكل صريح اسم النطاق المؤهل بالكامل للكمبيوتر (FQDN) في حقل الموضوع وتضمن عدم إرفاق UPN.
New-SelfSignedCertificate -DnsName \(env:COMPUTERNAME -CertStoreLocation Cert:\LocalMachine\My -Subject\)env:COMPUTERNAME
اكتب Thumbprint ستحتاجها للخطوات القادمة
الخطوة الثالثة: حذف WinRM HTTPS Listener المكسور الحالي
إذا كنت قد حاولت إعداد WinRM HTTPS سابقاً، فقد يكون هناك مستمع غير صالح يحجب الميناء. إزالته بتشغيل:
Remove-Item -Path WSMan:\Localhost\Listener\* -Recurse -ErrorAction SilentlyContinue
الخطوة 4: إنشاء WinRM HTTPS listener الجديد مع الشهادة الصحيحة
إستبدل YOUR_CERTIFICATE_THUMBPRINT مع السلسلة التي قمت بنسخها من الخطوة 2، ثم تشغيل الأمر:
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT"
الخطوة 5: افتح المنفذ 5986 في جدار حماية ويندوز
تتواصل حركة مرور WinRM HTTPS عبر المنفذ 5986. تأكد من أن جدار الحماية الخاص بك يسمح بهذه الحركة عن طريق تنفيذ:
New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "WinRM_HTTPS" -Profile Any -LocalPort 5986 -Protocol TCP -Action Allow -Direction Inbound
الخطوة السادسة: التحقق من الإعداد
تحقق مما إذا كان المستمع نشطاً ويتم تكوينه بشكل صحيح مع معايير الشهادة الجديدة:
winrm enumerate winrm/config/listener
ابحث عن المدخل حيث Transport = HTTPS للتأكد من أن المضيف الخاص بك يطابق سمات الشهادة. يمكنك الآن محاولة الاتصال عن بعد بأمان من جهاز العميل.
ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_DEFAULT_AUTHENTICATION | ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED | ERROR_WSMAN_CREATESHELL_NULL_ENVIRONMENT_VARIABLE_NAME | ERROR_WSMAN_SHELL_ALREADY_CLOSED | ERROR_WSMAN_CREATESHELL_NULL_STREAMIDقد يكون هناك بعض الأخطاء. Learn Microsoft