none
Ошибка при установке Cumulative Update 11 RRS feed

  • Вопрос

  • Во время установки CU11 (накопительное обновление), на этапе "Роль клиентского доступа: служба CAFE" возникла ошибка:

    Ошибка:
    При выполнении "$error.Clear();
              Install-ExchangeCertificate -services "IIS, POP, IMAP" -DomainController $RoleDomainController
              if ($RoleIsDatacenter -ne $true -And $RoleIsPartnerHosted -ne $true)
              {
              Install-AuthCertificate -DomainController $RoleDomainController
              }
            " произошла следующая ошибка: "Microsoft.Exchange.Management.SystemConfigurationTasks.AddAccessRuleUnauthorizedAccessException: Недостаточно прав для предоставления сетевой службе доступа к сертификату с отпечатком 046DBEFD76296F06CE64A8A6B33D74D8A08766C6. ---> System.UnauthorizedAccessException: Certificate ---> System.Security.Cryptography.CryptographicException: Набор ключей не существует

       в System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
       в System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
       в System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
       в System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()
       в Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.CAPIAddAccessRule(X509Certificate2 certificate, AccessRule rule)
       --- Конец трассировки внутреннего стека исключений ---
       в Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.CAPIAddAccessRule(X509Certificate2 certificate, AccessRule rule)
       в Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.AddAccessRule(X509Certificate2 certificate, AccessRule rule)
       в Microsoft.Exchange.Management.SystemConfigurationTasks.ManageExchangeCertificate.EnableForServices(X509Certificate2 cert, AllowedServices services, String websiteName, Boolean requireSsl, ITopologyConfigurationSession dataSession, Server server, List`1 warningList, Boolean allowConfirmation, Boolean forceNetworkService)
       --- Конец трассировки внутреннего стека исключений ---
       в Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
       в Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
       в Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.EnableForServices(X509Certificate2 cert, AllowedServices services)
       в Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.InternalProcessRecord()
       в Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
       в Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

    При повторном запуске установки она повторяется. По тексту ошибки догадываюсь, что ключевая фраза - "Недостаточно прав для предоставления сетевой службе доступа к сертификату с отпечатком", но не понимаю что с этим делать.

    ОС: Windows Server 2012, стояли все обновления, стоял CU9.
    • Изменено ascheck 16 января 2016 г. 19:22 дополнение
    16 января 2016 г. 19:19

Ответы

  • Можно настроить аудит на папку c:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys. Посмотреть у кого зафейлится доступ при установке. 


    В 2012 это папка ‪C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys, но я Вас понял. Спасибо за идею, попробую. Не уверен, только, что сегодня... устал уже, продолжу завтра.

    sartaychik, большое спасибо. Я поступил топорно, но с Вашей подсказки:

    1. добавил своему пользователю права на изменение этой папки
    2. увидел ошибку доступа к одному из файлов, запомнил его имя
    3. сменил владельца для этого файла (прежде не мог его даже посмотреть, даже по скрытой шаре, даже при открытии свойств из программ, запущенных с повышенными правами.)
    4. дал объекту "Все" права на чтение, а группе "Администраторы домена" - полный доступ к файлу.
    5. Повторно запустил установку CU11 и она прошла успешно.

    По крайней мере, я смог зайти в ecp, owa, отправить и получить письма на/с внешних адресов, всё с виду работает. Закрываю вопрос.

    • Помечено в качестве ответа ascheck 17 января 2016 г. 18:44
    17 января 2016 г. 18:44

Все ответы

  • у вас на сервере Exchange установлен центр сертификатов? если да, то вот решённая тема с похожей ошибкой.
    16 января 2016 г. 19:24
    Модератор
  • Спасибо, но это не мой случай, ЦС (и вообще никакие другие роли) на сервере Exchange не установлены. Я видел это решение и на всякий случай попробовал пользователю, из-под которого выполняется обновление, дать полные права на ЦС, но это пока не помогло. Может быть я не так понял описанное решение, но это, как бы то ни было, не мой случай.
    • Изменено ascheck 16 января 2016 г. 19:27 опечатался
    16 января 2016 г. 19:26
  • Здравствуйте!

    Покажите пожалуйста ответ на:

    Get-ExchangeCertificate

    Если в ответе нет сертификата с отпечатком: "046DBEFD76296F06CE64A8A6B33D74D8A08766C6", откройте MMC, добавьте оснастку сертификаты и посмотрите, какие сертификаты установлены для локального компьютера.

    Если там видите сертификатом с "046DBEFD76296F06CE64A8A6B33D74D8A08766C6" сохраните его и после этого удалите его.

    Попробуйте еще раз установить обновление.


    • Изменено Zaza Abramov 16 января 2016 г. 20:36
    16 января 2016 г. 20:27
  • Можно настроить аудит на папку c:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys. Посмотреть у кого зафейлится доступ при установке. 

    16 января 2016 г. 20:29
  • Здравствуйте!

    Покажите пожалуйста ответ на:

    Get-ExchangeCertificate

    Если в ответе нет сертификата с отпечатком: "046DBEFD76296F06CE64A8A6B33D74D8A08766C6", откройте MMC, добавьте оснастку сертификаты и посмотрите, какие сертификаты установлены для локального компьютера.

    Если там видите сертификатом с "046DBEFD76296F06CE64A8A6B33D74D8A08766C6" сохраните его и после этого удалите его.

    Попробуйте еще раз установить обновление.


    Сертификата с таким отпечатком нет ни в выводе Get-ExchangeCertificate, ни в списке сертификатов компьютера. Ответ команды:

    [PS] C:\Windows\system32>Get-ExchangeCertificate|fl


    AccessRules        :
    CertificateDomains : {***MSKEXCH01.***.**}
    HasPrivateKey      : True
    IsSelfSigned       : False
    Issuer             : CN=***-***MSKDC01-CA, DC=***, DC=ru
    NotAfter           : 07.09.2016 0:28:11
    NotBefore          : 08.09.2015 0:28:11
    PublicKeySize      : 2048
    RootCAType         : Enterprise
    SerialNumber       : 550000001AC045C858975B07C800000000001A
    Services           : SMTP
    Status             : Valid
    Subject            : CN=***MSKEXCH01.***.**
    Thumbprint         : 1609D68AD0AC8E077BDE9CD9528C965061A0E5E6

    AccessRules        :
    CertificateDomains : {mail.***.**, ***mskexch01.***.**, AutoDiscover.***.**, ***mskexch01}
    HasPrivateKey      : True
    IsSelfSigned       : True
    Issuer             : CN=mail.***.**
    NotAfter           : 04.08.2020 9:02:08
    NotBefore          : 04.08.2015 9:02:08
    PublicKeySize      : 2048
    RootCAType         : GroupPolicy
    SerialNumber       : 7A64BDCA11B3F7B2414BDD39DD28AE50
    Services           : IMAP, POP, IIS, SMTP
    Status             : Valid
    Subject            : CN=mail.***.**
    Thumbprint         : 046DBEFD76296F06CE64A8A6B33D74D8A08766C6

    AccessRules        :
    CertificateDomains : {}
    HasPrivateKey      : True
    IsSelfSigned       : True
    Issuer             : CN=Microsoft Exchange Server Auth Certificate
    NotAfter           : 24.09.2018 16:45:20
    NotBefore          : 20.10.2013 16:45:20
    PublicKeySize      : 2048
    RootCAType         : Registry
    SerialNumber       : 6A782469450153884418C5BF60CD1CFD
    Services           : SMTP
    Status             : Valid
    Subject            : CN=Microsoft Exchange Server Auth Certificate
    Thumbprint         : E081098205CD60A49572D5732E29D3D06167F185

    AccessRules        :
    CertificateDomains : {WMSvc-***MSKEXCH01}
    HasPrivateKey      : True
    IsSelfSigned       : True
    Issuer             : CN=WMSvc-***MSKEXCH01
    NotAfter           : 18.10.2023 3:47:54
    NotBefore          : 20.10.2013 3:47:54
    PublicKeySize      : 2048
    RootCAType         : Registry
    SerialNumber       : 5D8336968B78AD8C459DC1A8BB004E55
    Services           : SMTP
    Status             : Valid
    Subject            : CN=WMSvc-***MSKEXCH01
    Thumbprint         : BF4BA42F3A63923C123943235EB0D70FB743FCB7


    16 января 2016 г. 20:59
  • Можно настроить аудит на папку c:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys. Посмотреть у кого зафейлится доступ при установке. 


    В 2012 это папка ‪C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys, но я Вас понял. Спасибо за идею, попробую. Не уверен, только, что сегодня... устал уже, продолжу завтра.
    16 января 2016 г. 21:02
  • Сертификата с таким отпечатком нет ни в выводе Get-ExchangeCertificate, ни в списке сертификатов компьютера. Ответ команды:

    [PS] C:\Windows\system32>Get-ExchangeCertificate|fl

    AccessRules        :
    CertificateDomains : {mail.***.**, ***mskexch01.***.**, AutoDiscover.***.**, ***mskexch01}
    HasPrivateKey      : True
    IsSelfSigned       : True
    Issuer             : CN=mail.***.**
    NotAfter           : 04.08.2020 9:02:08
    NotBefore          : 04.08.2015 9:02:08
    PublicKeySize      : 2048
    RootCAType         : GroupPolicy
    SerialNumber       : 7A64BDCA11B3F7B2414BDD39DD28AE50
    Services           : IMAP, POP, IIS, SMTP
    Status             : Valid
    Subject            : CN=mail.***.**
    Thumbprint         : 046DBEFD76296F06CE64A8A6B33D74D8A08766C6



    Попробоуйте найти этот сертификат через MMC и дать права для учетной записи которую вы используете и Network Service.

    Еще в интернете пишут, что помогает копирование данного сертификата в контейнер Доверенные центры сертификации "Trusted Root Certification Authorities"


    • Изменено Zaza Abramov 16 января 2016 г. 22:13
    16 января 2016 г. 21:44
  • Виноват, вчера я явно переутомился. А сейчас не вижу как дать права к сертификату определённой учётной записи :|

    17 января 2016 г. 7:34
  • Откройте MMC от имении администратора, далее: Добавить или удалить оснастку\Сертификаты\Учетная запись компьютера\Локальный компьютер. В корни консоли переходим в Личные\Сертификаты\ и кликаем правой кнопкой на нужный сертификат, Все задачи\ Управление закрытыми ключами

    И сохраните сертификат перед манипуляциями. 

    • Изменено Zaza Abramov 17 января 2016 г. 9:21
    17 января 2016 г. 9:18
  • Откройте MMC от имении администратора, далее: Добавить или удалить оснастку\Сертификаты\Учетная запись компьютера\Локальный компьютер. В корни консоли переходим в Личные\Сертификаты\ и кликаем правой кнопкой на нужный сертификат, Все задачи\ Управление закрытыми ключами

    И сохраните сертификат перед манипуляциями. 

    Когда я для этого сертификата пытаюсь сделать экспорт, выгрузить закрытый ключ даже не предлагает. Когда выбираю для него "Управление закрытыми ключами", получаю ошибку No keys found for certificate. Видимо, корень проблемы совсем близко. Как будто что-то случилось с закрытым ключом, но я как-то никогда не задумывался где они вообще хранятся и поэтому не знаю как понять что с ним могло случиться.

    Если я правильно понимаю ситуацию, то можно создать новый сертификат и каким-то образом через IIS назначить его для Exchange... но как это делается - не знаю :(

    17 января 2016 г. 10:30
  • Можно настроить аудит на папку c:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys. Посмотреть у кого зафейлится доступ при установке. 


    В 2012 это папка ‪C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys, но я Вас понял. Спасибо за идею, попробую. Не уверен, только, что сегодня... устал уже, продолжу завтра.

    sartaychik, большое спасибо. Я поступил топорно, но с Вашей подсказки:

    1. добавил своему пользователю права на изменение этой папки
    2. увидел ошибку доступа к одному из файлов, запомнил его имя
    3. сменил владельца для этого файла (прежде не мог его даже посмотреть, даже по скрытой шаре, даже при открытии свойств из программ, запущенных с повышенными правами.)
    4. дал объекту "Все" права на чтение, а группе "Администраторы домена" - полный доступ к файлу.
    5. Повторно запустил установку CU11 и она прошла успешно.

    По крайней мере, я смог зайти в ecp, owa, отправить и получить письма на/с внешних адресов, всё с виду работает. Закрываю вопрос.

    • Помечено в качестве ответа ascheck 17 января 2016 г. 18:44
    17 января 2016 г. 18:44