Sử dụng letsencrypt làm CA, người dùng không phải quản trị viên sẽ tự động yêu cầu trình nghe winrm https sử dụng chứng chỉ mới sau khi chứng chỉ cũ sắp hết hạn. Để làm cho winrm thực sự sử dụng chứng chỉ, Giấy Chứng NhậnDấu Tay
của người nghe cần được đặt thành dấu vân tay của chứng chỉ mới.
Điều này có thể được thực hiện như thế này:
Set-WSManInstance -ResourceURI winrm/config/Listener `
-SelectorSet @{Address="*";Transport="HTTPS"} `
-ValueSet @{CertificateThumbprint=$thumbprint}
Tuy nhiên, người dùng không phải quản trị viên của chúng tôi rõ ràng là không được phép làm điều này (chưa):
Set-WSManInstance : <f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="5"
Machine="localhost"><f:Message>Quyền truy cập bị từ chối. </f:Message></f:WSManFault>
Tại dòng:1 ký tự:1
+ Set-WSManInstance -ResourceURI winrm/config/Listener `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
+ CategoryInfo : InvalidOperation: (winrm/config/Listener:Uri) [Set-WSManInstance], InvalidOperationExcep
sự
+ FullQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManInstanceCommand
Làm cách nào để gán quyền cho người dùng không phải quản trị viên để cập nhật Giấy Chứng NhậnDấu Tay
?
Cập nhật:
Dấu vân tay được lưu trữ rõ ràng trong HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Listener\*+HTTPS\certThumbprint
.
Thật không may, việc thay đổi khóa đăng ký đó và khởi động lại dịch vụ WinRM dẫn đến chứng chỉ cũ vẫn được cung cấp. Trên thực tế, ngay cả sau khi xóa chứng chỉ khỏi cửa hàng chứng chỉ và khởi động lại WinRM, nó vẫn được phục vụ. Vì vậy, phải có một số bộ đệm hoặc quy trình phụ trợ cần được xóa/khởi động lại.