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

Как проверить сведения об истечении срока действия многих SSL-сертификатов, развернутых на серверах Windows 2008/2012

У нас есть более 300 серверов Windows для хостинга .NET и много сертификатов SSL, импортированных на эти серверы. Можем ли мы получить сведения об истечении срока действия сертификата для всех серверов с одного сервера Windows / Linux с помощью PowerShell или Python?

Get-ChildItem cert:\LocalMachine\My отобразит список всех установленных сертификатов машины.

чтобы сделать то же самое с удаленным сервером, используйте удаленное взаимодействие:

Invoke-Command -ComputerName $servername -ScriptBlock {Get-ChildItem cert:\LocalMachine\My}

или все ваши серверы:

$certs = Get-ADComputer -SearchBase 'ou=servers,dc=something,dc=com' -filter *
    | % { Invoke-Command -ComputerName $_.name -ScriptBlock
        { Get-ChildItem cert:\LocalMachine\my }
    }'

Самый простой способ сделать это - просто скрутить сайт с помощью следующих флагов:

curl -ILv https://yourdomainhere.com

в выходных данных вы найдете строку истечения срока «срок действия», которая выглядит примерно так:

*    expire date: 2016-05-19 20:59:53 GMT

используйте pycurl, чтобы заставить это работать, проглотите его как строку, а затем извлеките соответствующие данные. ИЛИ вы можете использовать следующий скрипт python для * nix-боксов для тестирования (это немного грубо и может потребоваться настройка, чтобы принять все хосты / домены для проверки):

import os
os.system("echo|openssl s_client -connect mydomain.com:443 | openssl x509 -noout -dates > ~/testfile.txt")