CertUtil: ERROR_INVALID_ACL (0x80070538) исключение при попытке установить корневой сертификат в Windows

2

У меня есть программа, которая устанавливает сертификат в Trusted Root (с согласия пользователя). Однако некоторые пользователи не могут использовать мое программное обеспечение из-за исключительной ситуации, возникающей при выполнении команды добавления сертификата. Это происходит как при использовании certutil, так и powershell.


Certutil

Команда: -addstore -user -f root cert.pem

Выход: -addstore команда НЕ ВЫПОЛНЕНА: 0x80070538 (WIN32: 1336 ERROR_INVALID_ACL) Список управления доступом (ACL) имеет неверную структуру.

Примерно переводится как The access control list structure is invalid,


PowerShell

Команда: Import-Certificate -FilePath .\cert.pem -CertStoreLocation Cert:\CurrentUser\Root

Выход: https://imgur.com/ZkHHEVx


К сожалению, об этой ошибке не так много в Интернете, поэтому, если у кого-то был опыт с ней, я был бы рад, если бы вы поделились.

alexalok
источник
Попробуйте эту команду: CERTUTIL -addstore -enterprise -f -v root "cert.pem"
harrymc
@harrymc, извините за задержку, мне пришлось ждать, пока один из пользователей с этой проблемой не связался со мной. Выполнение этой команды действительно решило проблему. Не могли бы вы объяснить, почему это так? Связано ли это с безопасностью (то есть вмешивается какое-то антивирусное программное обеспечение)?
alexalok
Вы просто использовали неправильные параметры, поэтому я добавил ответ об этом.
harrymc
@harrymc на самом деле, -user устанавливает сертификат только в профиль текущего пользователя и -enterprise устанавливает его в машинном режиме. При установке сертификата в автоматическом режиме необходимо запускать certutil с повышенными правами, в то время как в первом варианте этого требования нет. Тем не менее, спасибо за вашу помощь!
alexalok

Ответы:

0

Правильные параметры для команды certutil:

CERTUTIL -addstore -enterprise -f -v root "cert.pem"
harrymc
источник