Используя letsencrypt в качестве ЦС, пользователь без прав администратора автоматически запрашивает новый сертификат, который будет использоваться прослушивателем https winrm, когда срок действия старого подходит к концу. Чтобы заставить winrm действительно использовать сертификат, Отпечаток сертификата
прослушивателя должен быть установлен на отпечаток нового сертификата.
Это можно сделать следующим образом:
Set-WSManInstance -URI ресурса winrm/config/Listener `
-SelectorSet @{Address="*";Transport="HTTPS"} `
-ValueSet @{CertificateThumbprint=$thumbprint}
Однако нашему пользователю, не являющемуся администратором, очевидно, не разрешено это делать (пока):
Set-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 -URI ресурса 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 он все еще обслуживается. Таким образом, должен быть какой-то кеш или вспомогательный процесс, который необходимо очистить/перезапустить.