Извлекать информацию сертификата автоматически
В моих текущих настройках у меня есть 16 рабочих серверов и еще 16-20 на серверах Dev и QA. У меня также есть много сертификатов в них. Мы пытаемся провести инвентаризацию всего, чтобы не пропустить ни одного предупреждения об истечении срока действия сертификата (это происходило на производстве, и это оказало значительное влияние на бизнес).
Я могу перейти в MMC и щелкнуть правой кнопкой мыши на каждом узле и экспортировать список, но это слишком много времени для 40+ машин. Есть ли способ сделать это автоматически? Любые сценарии или инструменты для этого?
Спасибо,
Р.В.
1 ответ
Возможно, этот вопрос будет перенесен на другой сайт StackExchange, но я все же предоставлю ответ.
Немного магии PowerShell должно сделать это довольно просто. PowerShell может перемещаться по хранилищу сертификатов так, как если бы это был любой другой диск (например, по файловой системе).
Чтобы просмотреть все сертификаты в системе:
Get-ChildItem -Path Cert:\ -Recurse
Если вы хотите, чтобы сертификаты были установлены как Текущий пользователь, просто измените "каталог":
Get-ChildItem -Path Cert:\CurrentUser -Recurse
(Обратите внимание, что приведенные выше команды возвращают имя "папки", за которым следуют все содержащиеся в нем сертификаты, что в зависимости от того, что вы делаете, может привести к путанице.)
Из вашего вопроса я предполагаю, что вас действительно беспокоят сертификаты аутентификации сервера SSL, поэтому вы можете получить только те из них (и ограничить вывод только темой, темой и сроком действия сертификатов):
Get-ChildItem -Path Cert:\ -Recurse -SSLServerAuthentication | Select Subject, PSParentPath, NotAfter
Затем вы можете посмотреть на такие вещи, как экспорт списка в файл CSV (или базу данных или любой другой метод, который вы хотите использовать для их сбора), а затем запустить их на удаленных серверах с одной центральной рабочей станции и собрать всю информацию локально.