Безопасность - Исправление списка управления доступом в сертификате - Приложение

Microsoft.AppVirtualization.Server.45.LightWeightServer.Security_FixAccessControlListontheCertificate_Application (UnitMonitor)

Средство безопасности сообщает о состоянии сертификата Application Virtualization Server и безопасном соединении.

Knowledge Base article:

Сводка

Средство безопасности сообщает о состоянии сертификата Application Virtualization Server и безопасном соединении.

Решения

После должного предоставления сертификата на сервер службе Application Virtualization необходим доступ к закрытому ключу для завершения транзакции TLS. В версии 4.5 служба Application Virtualization по умолчанию работает как «Сетевая служба».  Сетевая служба должна иметь разрешение на чтение закрытого ключа сертификата.

Закрытый ключ для сертификата сервера находится в следующем размещении.

C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

  1. Щелкните правой кнопкой мыши на файле закрытого ключа и выберите «Свойства». Откройте вкладку «Безопасность».
  2. Измените список управления доступом для этого файла, чтобы предоставить разрешение на чтение службе NETWORK SERVICE.

Если на сервере предоставляются несколько сертификатов и неясно, какой именно закрытый ключ соответствует сертификату Application Virtualization, выполните следующие шаги для определения закрытого ключа.

Сначала найдите отпечаток для сертификата сервера Application Virtualization.

  1. Откройте консоль управления (mmc.exe). Выберите «Файл» > «Добавить или удалить оснастку».
  2. В доступных оснастках выберите Сертификаты. Нажмите «Добавить».
  3. В диалоговом окне выберите учетную запись компьютера и нажмите «Далее».
  4. Выберите локальный компьютер и нажмите «Готово». Нажмите «ОК» в диалоговом окне «Добавить или удалить оснастку».
  5. Щелкните узел Сертификаты\Доверенные корневые центры сертификации\Сертификаты.
  6. Для включения TLS дважды щелкните сертификат, который требуется использовать.
  7. Перейдите на вкладку «Сведения». Прокручивайте вниз до появления поля «Отпечаток».
  8. Выберите отпечаток и скопируйте информацию, показанную для него.

Затем воспользуйтесь информацией отпечатка для определения размещения файла закрытого ключа в локальной файловой системе.

  1. Загрузите на диск C: средство FindPrivateKey из сети MSDN по адресу http://msdn2.microsoft.com/library/ms732026.aspx
  2. В командной строке введите следующую команду, чтобы найти требуемый закрытый ключ, связанный с сертификатом, предоставленным серверу Application Virtualization на основании отпечатка.
  3. C:\> FindPrivateKey.exe My LocalMachine -t "<код отпечатка из буфера обмена>"
  4. Эта команда возвращает каталог закрытого ключа. C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
  5. Также она возвращает имя файла закрытого ключа. например, c55cba5a3183f6509a3bfa7e4c7b8b6e_4df07ed6-ffdf-4c11-ac94-3dd02af9a838
  6. Откройте каталог закрытого ключа и найдите файл закрытого ключа. C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 

Убедитесь, что для файла закрытого ключа установлены нужные права доступа. Для этого выполните следующее.

  • Щелкните правой кнопкой мыши на файле закрытого ключа и выберите «Свойства». Откройте вкладку «Безопасность».
  • Измените список управления доступом для этого файла, чтобы предоставить разрешение на чтение службе NETWORK SERVICE.

    Element properties:

    TargetMicrosoft.AppVirtualization.Server.45.LightWeightServer
    Parent MonitorMicrosoft.AppVirtualization.Server.45.Security_LWS.HealthState
    CategoryEventCollection
    EnabledTrue
    Alert GenerateTrue
    Alert SeverityMatchMonitorHealth
    Alert PriorityNormal
    Alert Auto ResolveTrue
    Monitor TypeMicrosoft.Windows.SingleEventLogManualReset2StateMonitorType
    RemotableTrue
    AccessibilityPublic
    Alert Message
    Безопасность - Исправление списка управления доступом в сертификате - Приложение
    {0}
    RunAsDefault

    Source Code:

    <UnitMonitor ID="Microsoft.AppVirtualization.Server.45.LightWeightServer.Security_FixAccessControlListontheCertificate_Application" Accessibility="Public" Target="Microsoft.AppVirtualization.Server.45.LightWeightServer" TypeID="Windows!Microsoft.Windows.SingleEventLogManualReset2StateMonitorType" ParentMonitorID="Microsoft.AppVirtualization.Server.45.Security_LWS.HealthState">
    <Category>EventCollection</Category>
    <AlertSettings AlertMessage="Microsoft.AppVirtualization.Server.45.LightWeightServer.Security_FixAccessControlListontheCertificate_Application.Alert">
    <AlertOnState>Error</AlertOnState>
    <AutoResolve>true</AutoResolve>
    <AlertPriority>Normal</AlertPriority>
    <AlertSeverity>MatchMonitorHealth</AlertSeverity>
    <AlertParameters>
    <AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
    </AlertParameters>
    </AlertSettings>
    <OperationalStates>
    <OperationalState ID="EventRaised" MonitorTypeStateID="EventRaised" HealthState="Error"/>
    <OperationalState ID="ManualResetEventRaised" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
    </OperationalStates>
    <Configuration>
    <ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
    <LogName>Application</LogName>
    <Expression>
    <And>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="String">PublisherName</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="String">Application Virtualization Server</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    <Expression>
    <SimpleExpression>
    <ValueExpression>
    <XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
    </ValueExpression>
    <Operator>Equal</Operator>
    <ValueExpression>
    <Value Type="UnsignedInteger">44955</Value>
    </ValueExpression>
    </SimpleExpression>
    </Expression>
    </And>
    </Expression>
    </Configuration>
    </UnitMonitor>