Назад | Перейти на главную страницу

Автоматическое извлечение информации о сертификате

В моих текущих настройках у меня есть 16 производственных серверов и еще от 16 до 20 на серверах Dev и QA. В них тоже много сертификатов. Мы стараемся провести инвентаризацию всего, чтобы не пропустить какие-либо предупреждения об истечении срока действия сертификатов (у нас это случалось в производственной среде, и это сильно повлияло на бизнес).

Я могу перейти в MMC и щелкнуть правой кнопкой мыши по каждому узлу и экспортировать список, но это слишком много времени для 40+ машин. Есть ли способ сделать это автоматически? Какие-нибудь скрипты или инструменты для этого?

Спасибо,

RV

Возможно, этот вопрос будет перенесен на другой сайт 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 (или базу данных или любой другой метод, который вы хотите использовать для их сбора), а затем запустить их на удаленных серверах с одной центральной рабочей станции и собрать всю информацию локально.