วิธีแก้ไข RDP บน windows server 2012


12

นี่คือภาพรวมของสถานะ RDP ดูดี: ป้อนคำอธิบายรูปภาพที่นี่

เมื่อฉันไปเชื่อมต่อจากเครื่องระยะไกลฉันได้รับข้อผิดพลาด:

"This computer can't connect to the remote computer. 
Try connecting again. If the problem continues..."

ฉันทดสอบพอร์ต 3389 จากระยะไกลมันเปิดอยู่ ฉันทดสอบกับ netstat แล้ว

TCP    0.0.0.0:3389           hostname:0                LISTENING
  • ไม่มีไฟร์วอลล์ Windows
  • ไม่มีเครือข่ายไฟร์วอลล์
  • ใบรับรองที่ลงนามเองใหม่ล่าสุด
  • เครื่องเพิ่งรีบูตทำงานก่อนหน้านั้น
  • บริการเทอร์มินัลกำลังทำงาน
  • เมื่อฉันตรวจสอบใบรับรอง SSL จะแสดงรายละเอียดทั้งหมดดูดีหมดอายุในปี 2014
  • hklm: \ System \ CurrentControlSet \ Control \ Terminal Server \ fDenyTSConnections คือ 0
  • ผู้ดูแลระบบ C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys มีสิทธิ์ทั้งหมด

ปรับปรุง:

ตอนนี้ฉันพบสิ่งนี้ในบันทึกเหตุการณ์ภายใต้กิจกรรมการดูแลระบบ

"A fatal error occurred when attempting to access the SSL server credential 
private key. The error code returned from the cryptographic module is 0x8009030D. 
The internal error state is 10001." 

ฉันไม่แน่ใจว่าจะแก้ไขข้อผิดพลาดได้อย่างไร ฉันไม่แน่ใจว่าเป็นใบรับรอง RD ที่นำเข้าของฉัน แต่ฉันรู้ว่ามันเกิดขึ้นเมื่อฉันพยายาม RDP จากเครื่องของฉัน

อัปเดต II:

ฉันพยายามใช้ powershell เพื่อสร้าง certs ด้วยคีย์ส่วนตัว ไม่มีโชค. เทคนิคการใช้ที่นี่และที่นี่โดยไม่มีโชค ทุกครั้งที่ฉันเพิ่มใบรับรองให้กับรากที่เชื่อถือได้และเป็นส่วนตัวสำหรับผู้ใช้ระบบใน MMC Certificate snap-in

อัปเดต III:

น่ารำคาญมาก

ฟอรัมนี้บ่งชี้ว่าหน้าต่างอาจได้รับการอัพเดตในระหว่างการรีบูตทำให้เกิดข้อผิดพลาดที่ไม่สามารถกู้คืนได้ในการติดตั้งบทบาทนายหน้าการเชื่อมต่อเดสก์ท็อประยะไกล (จำเป็นต้องทำเพื่อสร้างไฟล์ ข้อผิดพลาดมาพร้อมกับโปรแกรมแก้ไขด่วนมิถุนายน 2013 KB2821895 สิ่งนี้อาจถูกแก้ไขได้ด้วยสิ่งนี้? http://support.microsoft.com/kb/2871777

ดังนั้นฉันจึงทำการอัพเดท windows ล่าสุดและพยายามติดตั้ง Remote Desktop Connection Broker เพื่อให้ฉันสามารถสร้างไฟล์ pfx ได้ ไม่มีโชค. มันบอกว่าหนึ่งหรือมากกว่าหนึ่งคุณสมบัติผู้ปกครองไม่ได้ติดตั้ง - แม้ว่า Hyper-V ฯลฯ และมันไม่ได้พูดถึงบทบาทอื่นที่จะเพิ่ม ...

อัปเดตคำถามสรุป!

ดังนั้นทุกคนพูดและทำในทางทฤษฎีจะได้รับ RD Connection Broker เพื่อติดตั้ง (เพื่อสร้างคีย์ส่วนตัว) น่าจะแก้ข้อผิดพลาดการเข้ารหัสของฉันได้อย่างไร


ภาพหน้าจอของคุณเป็นเกตเวย์ rdp แต่คุณกำลังพูดถึง vanilla rdp มันเป็นสองสิ่งแยกกัน เกตเวย์ rdp ทำงานกับ: 443 เพื่อเชื่อมต่อช่องสัญญาณ rdp ภายในเครือข่าย
Mark Henderson

ใช่ฉันสงสัยว่าฉันอยู่ผิดที่ - ฉันจะแก้ไขปัญหาใบรับรองได้อย่างไร ฉันไม่เห็นว่าในการตั้งค่าวานิลลา RD แม้แต่การเปลี่ยนแปลงนี้
FlavourScape

การยืนยันว่าบริการกำลังทำงานผ่านเน็ตสแตทไม่ได้เป็นการทดสอบที่เพียงพอ จากระบบรีโมตให้รัน "telnet IP_OF_RDP_HOST 3389" (โดยไม่มีเครื่องหมายอัญประกาศ) และควรลบข้อความทั้งหมดในหน้าต่าง cmd หรือเรียกใช้การดักจับเครือข่าย (netmon / wireshark) เพื่อตรวจสอบว่ามีการสร้างเซสชัน TCP หรือไม่
user2320464

ลองเข้าไปในblogs.technet.microsoft.com/askperf/2014/10/22/ … - มันใช้งานได้สำหรับฉันด้วยการเชื่อมต่อ RDP ที่ถูกปฏิเสธไปยัง Win2012 svr :-)
Nigel Harvey

คำตอบ:


7

คุณอาจพบข้อผิดพลาดนี้เมื่อเชื่อมต่อหลังจากนำเข้าใบรับรอง SSL (และรหัสส่วนตัวที่เกี่ยวข้อง) ไปยัง Windows Server 2012:

This computer can't connect to the remote computer. Try connecting again. If the problem continues, contact the owner of the remote computer or your network administrator. 

นอกจากนี้ในบันทึกเหตุการณ์ Windows คุณจะเห็น:

"A fatal error occurred when attempting to access the SSL server credential 
private key. The error code returned from the cryptographic module is 0x8009030D. 
The internal error state is 10001." 

สารละลาย:

อ้างจาก Microsoft KB2001849:

"บริการโฮสต์เดสก์ท็อประยะไกลทำงานภายใต้บัญชี NETWORK SERVICE ดังนั้นจึงจำเป็นต้องตั้งค่า ACL ของไฟล์คีย์ที่ใช้โดย RDS (อ้างอิงโดยใบรับรองที่มีชื่อในค่ารีจิสทรี SSLCertificateSHA1Hash) เพื่อรวม NETWORK SERVICE ด้วย" อ่าน " การอนุญาตในการแก้ไขการอนุญาตให้ทำตามขั้นตอนด้านล่าง:

เปิดสแน็ปอินใบรับรองสำหรับคอมพิวเตอร์ในระบบ:

  1. คลิกเริ่มคลิกเรียกใช้พิมพ์ mmc และคลิกตกลง

  2. บนเมนูไฟล์คลิกเพิ่ม / ลบสแนปอิน

  3. ในกล่องโต้ตอบเพิ่มหรือลบสแนปอินในรายการสแน็ปอินที่มีให้คลิกใบรับรองและคลิกเพิ่ม

  4. ในกล่องโต้ตอบสแนปอินของใบรับรองคลิกบัญชีคอมพิวเตอร์และคลิกถัดไป

  5. ในกล่องโต้ตอบ Select Computer คลิก Local Computer: (คอมพิวเตอร์ที่คอนโซลนี้ทำงานอยู่) และคลิก Finish

  6. ในกล่องโต้ตอบเพิ่มหรือลบสแนปอินคลิกตกลง

  7. ในสแนปอินใบรับรองในคอนโซลทรีขยายใบรับรอง (คอมพิวเตอร์ในระบบ) ขยายส่วนบุคคลและไปที่ใบรับรอง SSL ที่คุณต้องการใช้

  8. คลิกขวาที่ใบรับรองเลือกงานทั้งหมดและเลือกจัดการคีย์ส่วนตัว

  9. ในกล่องโต้ตอบสิทธิ์คลิกเพิ่มพิมพ์ NETWORK SERVICE คลิกตกลงเลือกอ่านภายใต้ช่องทำเครื่องหมายอนุญาตแล้วคลิกตกลง "

ที่มา: https://support.microsoft.com/en-us/kb/2001849


3

ฉันปิดบริการเกตเวย์ ฉันลงเอยด้วยการใช้ MMC และลบใบรับรอง RD ทั้งหมด จากนั้นฉันปิดใช้งานและเปิดใช้งานอีกครั้งอนุญาตการเชื่อมต่อระยะไกล สิ่งนี้สร้างใบรับรองใหม่ที่ดีและฉันสามารถเข้าสู่ระบบบนโดเมนเครื่องได้!


2

ฉันถูกต้องสมมติว่าคุณนำเข้าใบรับรองที่ลงนามด้วยตนเองหรือไม่ หากเป็นกรณีนี้คุณอาจทำเครื่องหมายว่าไม่สามารถส่งออกใบรับรองได้ซึ่งจะอธิบายข้อผิดพลาด ... ดูที่http://blogs.msdn.com/b/kaushal/archive/2012/10/07/error -hresult-0x80070520-when-add-ssl-binding-in-iis.aspxสำหรับรายละเอียดเพิ่มเติม หากฉันถูกต้องคุณจะต้องลบและนำเข้าใบรับรองอีกครั้งด้วยการตั้งค่าสถานะ "อนุญาตให้ส่งออก"


ใบรับรองของฉันไม่เคยสร้างคีย์ส่วนตัวดังนั้นฉันไม่สามารถส่งออก / นำเข้าเพื่อนำไปไว้ในระบบแทนที่เก็บใบรับรองผู้ใช้ของฉัน ตอนนี้ฉันกำลังพยายามใช้ PowerShell เพื่อสร้างรหัสด้วยไพรเวตคีย์เพราะเห็นได้ชัดว่าในไดอะล็อก RD ไม่ได้ทำสิ่งนี้เลย
FlavourScape

ฉันไม่ได้เพิ่มการผูกไว้กับ IIS อย่างใดอย่างหนึ่งมันเป็นสำหรับเดสก์ท็อประยะไกล ...
FlavourScape

1

มีทางออกสำหรับคุณ:

ดาวน์โหลด makecert.exe และสร้างใบรับรองใหม่สำหรับ RDP

makecert -r -pe -n "CN = เซิร์ฟเวอร์ FQDN" -eku 1.3.6.1.5.5.7.3.1 -ss ของฉัน -sr LocalMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "

เปลี่ยน FQDN เซิร์ฟเวอร์ด้วยมูลค่าที่แท้จริง

ไปที่ใบรับรองคอมพิวเตอร์และภายใต้เดสก์ท็อประยะไกลลบใบรับรองปัจจุบัน จากร้านค้าส่วนตัวให้ย้ายใบรับรองที่สร้างขึ้นใหม่ไปยัง Remote Desktop เปิดหนังสือรับรองและคัดลอก Thumbprint

เปิด regedit แล้วไปที่:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations

อัปเดตคีย์ SelfSignedCertificate ด้วย tumbprint ใบรับรองใหม่

เริ่มบริการบริการเดสก์ท็อประยะไกล


1

ฉันมีปัญหาเดียวกันโดยมีข้อผิดพลาดปรากฏขึ้นทันทีที่ฉันคลิกเชื่อมต่อ

เพื่อแก้ไขให้ฉันฉันเปลี่ยนบริการบริการเดสก์ท็อประยะไกลดังนั้นจึงทำงานเป็นบัญชีระบบภายในเครื่องแทนบริการเครือข่าย เริ่มบริการใหม่และทุกอย่างทำงานได้ตามปกติ

แก้ไข:
ฉันเพิ่งพบว่าจะทำให้ข้อความถูกปฏิเสธการเข้าถึงและจะต้องตั้งค่าเป็น NETWORK SERVICE แต่การเปลี่ยนสิ่งนี้เป็นบัญชี Local System และกลับไปที่ NETWORK SERVICE ไม่สามารถแก้ไขปัญหาของฉันได้อย่างสมบูรณ์



1

ในที่สุดนี่คือสิ่งที่แก้ไขปัญหาเดียวกันนี้ให้ฉัน (อุปกรณ์ประกอบฉากขนาดใหญ่สำหรับโพสต์ TechNet นี้เกี่ยวกับวิธีการติดตามว่าคีย์ส่วนตัวใดที่เป็นผู้กระทำความผิด)

  1. ดาวน์โหลดและเรียกใช้ Procmon (จาก Sysinternals Suite)
  2. ตรวจสอบโฟลเดอร์ MachineKeys สำหรับกิจกรรม (ส่วนใหญ่: C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys) โดยฟังกิจกรรมใด ๆ ในเส้นทางนั้น
  3. พยายาม RDP ไปยังเครื่องที่ละเมิดและคุณควรเห็น Procmon บันทึกข้อผิดพลาดการเข้าถึงถูกปฏิเสธพร้อมกับไฟล์ที่ปฏิเสธการเข้าถึง
  4. ลบไฟล์ที่ละเมิด (คุณอาจต้องทำให้ตัวเองเป็นเจ้าของไฟล์ก่อนจากนั้นให้การควบคุมเต็มรูปแบบ)
  5. รีสตาร์ทคอมพิวเตอร์และควรสร้างรหัสที่หายไปของคุณใหม่ด้วยสิทธิ์ที่ถูกต้อง

0

ฉันไปงานปาร์ตี้สาย แต่นี่คือสิ่งที่ช่วยฉัน

  • สร้างใบรับรอง PFX ใหม่ การเซ็นชื่อด้วยตนเองจะทำงาน:

    ติดตั้งโมดูล SharePointPnPPowerShellOnline $ รหัสผ่าน = ConvertTo-SecureString "P @ ssword" - บังคับใช้ - AsPlainText ใหม่ -PnPAzureCertificate -CommonName RDS_CertName -ValidYears 30 -OutPfx "RDS_CertName

  • จับนิ้วหัวแม่มือในหน้าต่างผลลัพธ์
  • ติดตั้งใบรับรอง PFX ที่สร้างไปยังคอมพิวเตอร์ของฉัน> ร้านค้าส่วนตัว
  • เรียกใช้คำสั่งต่อไปนี้โดยใช้รหัสประจำตัวที่คุณจับภาพไว้ในขั้นตอนข้างต้น:

    wmic / namespace: \ root \ cimv2 \ TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash = " THUMB_PRINT "

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.