У меня есть самозаверяющий сертификат .cer, который мне нужно развернуть примерно на 1000 машин, работающих под управлением различных версий Windows от Windows XP и Server 2003 до Windows 7 и Server 2008 R2.
SCCM - наш обычный метод развертывания, и мы пробовали развертывать их несколькими разными способами, и я натыкаюсь на тот факт, что либо не все необходимые инструменты доступны во всех ОС, либо я просто получаю сообщения об ошибках при автоматическом развертывании, которых я не делаю. не вижу запуска их вручную.
Самый кроссплатформенный метод, который я нашел, - это взять копию CertUtil.exe и certadm.dll из копии XP SP3, в которой установлены инструменты администратора, и поместить ее в ту же папку, что и файл .cer, затем используйте следующие командные строки в пакетном файле:
certutil.exe -addstore TrustedPublisher cert.cer
certutil.exe -addstore root cert.cer
Это отлично работает при ручном запуске командного файла, но при автоматическом запуске возвращается с множеством ошибок.
Есть ли лучший способ сделать это на разных платформах Windows?
Поскольку у вас так много машин, кажется разумным предположить, что вы используете домен AD, и в этом случае вы можете отправить сертификаты с помощью объектов групповой политики. Есть множество статей с описанием шагов, таких как вот этот от Технет.
Следуя подсказкам из этого предыдущего вопроса импортировать сертификат с помощью командной строки в Win XP Homeи немного поиграться, теперь это последовательно развертывается во всех ОС.
Извлекли следующие файлы из 32-разрядного пакета администрирования Win Server 2003 SP2 (KB340178) и сохраняется вместе с сертификатом в папке источника пакетов в SCCM:
certadm.dll
certcli.dll
certreq.exe
certutil.exe
cert.cer
Теперь, отказавшись от командного файла и создав две отдельные программы в SCCM с помощью следующих двух командных строк (обе связаны вместе в одно объявление), все, похоже, работает как автоматическое развертывание в ОС.
certutil.exe -addstore TrustedPublisher cert.cer
certutil.exe -addstore root cert.cer