การใช้ letsencrypt เป็น CA ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบจะขอใบรับรองใหม่โดยอัตโนมัติเพื่อใช้โดยผู้ฟัง winrm https เมื่อใบรับรองเก่ากำลังจะหมดอายุ ในการทำให้ winrm ใช้ใบรับรองจริง ใบรับรองนิ้วหัวแม่มือ
ของผู้ฟังจำเป็นต้องตั้งค่ารหัสประจำตัวของใบรับรองใหม่
สามารถทำได้ดังนี้:
ตั้งค่า WSManInstance -ResourceURI winrm/config/Listener `
-SelectorSet @{Address="*";Transport="HTTPS"} `
-ชุดค่า @{CertificateThumbprint=$thumbprint}
อย่างไรก็ตาม เห็นได้ชัดว่าผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบของเราไม่ได้รับอนุญาตให้ทำสิ่งนี้ (ยัง):
ชุด WSManInstance : <f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="5"
Machine="localhost"><f:Message>การเข้าถึงถูกปฏิเสธ </f:ข้อความ></f:WSManFault>
ที่บรรทัด:1 ตัวอักษร:1
+ Set-WSManInstance -ResourceURI winrm/config/Listener `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~
+ CategoryInfo : InvalidOperation: (winrm/config/Listener:Uri) [Set-WSManInstance], InvalidOperationExcep
ที
+ FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManInstanceCommand
ฉันจะกำหนดสิทธิ์ให้กับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบในการอัปเดตได้อย่างไร ใบรับรองนิ้วหัวแม่มือ
?
อัปเดต:
เห็นได้ชัดว่าลายนิ้วมือถูกเก็บไว้ใน HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Listener\*+HTTPS\certThumbprint
.
ขออภัย การเปลี่ยนรีจิสตรีคีย์และเริ่มบริการ WinRM ใหม่ ส่งผลให้ใบรับรองเก่ายังคงให้บริการอยู่ ที่จริงแล้ว แม้ว่าหลังจากลบใบรับรองออกจากที่เก็บใบรับรองและรีสตาร์ท WinRM แล้ว ก็ยังให้บริการอยู่ ดังนั้นจึงต้องมีแคชหรือกระบวนการเสริมซึ่งจำเป็นต้องล้าง/เริ่มต้นใหม่