Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ms_windows_ms_sql:ssl_certificate_private_key_permissions [2019/02/08 08:26]
admin [Решение]
ms_windows_ms_sql:ssl_certificate_private_key_permissions [2019/02/11 09:13] (current)
Line 1: Line 1:
 +====== Проблема ====== 
 +Я использую сертификаты **Let's Encrypt** на хосте **Windows 2008R2**. Сертификат нужен для **Citrix Secure Gateway**. \\ 
 +В один прекрасный день, после обновления сертификата средствами **Windows ACME Simple** версии **1.9.12.2** (**letsencrypt.exe**) сервис отказался запускаться, ссылаясь на то, что не имеет прав на чтение **private key**: 
 +  Read access to the selected certificate's private key failed. 
 +Сервис исполняется от имени **Network Service**. Если в свойствах сертификата нажать **Manage Private Keys...** и попытаться дать права для **Network Service**, то появляется сообщение: 
 +  Unable to save permission changes on <<certificate name and date>> private keys. 
 +  Access is denied. 
 +====== Решение ====== 
 +Помогло применение **PsExec**. \\ 
 +Запускаем **mmc** от имени **SYSTEM**: 
 +  psexec -i -s mmc 
 +добавляем оснастку для управления сертификатами локального компьютера и теперь мы можем дать права на **private key** этого сертификата. \\ 
 +Вероятная причина такого поведения - то что задача обновления сертификатов исполняется от имени **SYSTEM**. \\ 
 +Также, почему-то **Citrix Secure Gateway** отказывался запускаться пока я не дал права на чтение **private key** учетке, от имени которой я производил установку и конфигурирование. \\ 
 +**Scheduled Task** обновления сертификатов я буду запускать раз в неделю от имени учетки, которая устанавливала и конфигурировала **Citrix Secure Gateway**. 
 +Еще нюанс. У меня **Citrix Secure Gateway** работает на одном хосте с **Web Interface**. Соответственно, **Web Interface** работает на 80 порту, а **Secure Gateway** на 443. При обновлении сертификата клиент **win-acme** обновляет (пересоздает) привязку  
 +  https://*:443 
 +Я не разобрался как это изменить на уровне **win-acme**, однако добавил в **scheduled task** еще один **Action** для удаления привязки: 
 +  %systemroot%\system32\inetsrv\appcmd.exe set site /site.name:"Default Web Site" /-bindings.[protocol='https',bindingInformation='*:443:'
 +В итоге, список **Actions** в **sheduled task** у меня такой: 
 +  sc stop "CtxSecGwy" 
 +  c:\letsencrypt\letsencrypt.exe --renew --baseuri "https://acme-v01.api.letsencrypt.org/" 
 +  timeout /T 15 
 +  %systemroot%\system32\inetsrv\appcmd.exe set site /site.name:"Default Web Site" /-bindings.[protocol='https',bindingInformation='*:443:'
 +  sc start "CtxSecGwy" 
 +Посмотрим, что будет при следующем обновлении!!! 
 +  
  • ms_windows_ms_sql/ssl_certificate_private_key_permissions.txt
  • Last modified: 2019/02/11 09:13
  • (external edit)