Как определить какой сертификат используется для ldaps?

03 январь 2025, Пятница
9
0
0 0
Чтобы определить, какой сертификат используется для LDAPS (LDAP over SSL/TLS), можно воспользоваться несколькими методами в зависимости от вашей операционной системы и доступных инструментов. Ниже перечислены четыре наиболее простых способа выяснить, какой сертификат используется службой каталогов.


1. Использование OpenSSL (Linux/macOS/Windows)

Самый простой способ — подключиться к LDAPS-серверу и получить сертификат с помощью openssl:
openssl s_client -connect <сервер>:<порт> -showcerts </dev/null 2>/dev/null | openssl x509 -text
Где:
<сервер> — имя или IP-адрес LDAPS-сервера (например, ldap.example.com).
<порт> — обычно 636 (LDAPS) или 389 + STARTTLS.

Пример:
openssl s_client -connect ldap.example.com:636 -showcerts </dev/null 2>/dev/null | openssl x509 -text
Вывод покажет:
  • Issuer (кто выпустил сертификат)
  • Subject (для кого выпущен)
  • Validity (срок действия)
  • Public Key (алгоритм и длина ключа)
  • SAN (Subject Alternative Names, если есть)


2. Проверка сертификата LDAPS через MMC оснастку

  1. Сертификат LDAPS обычно можно найти в хранилище сертификатов:
    1. Откройте mmc → Файл → Добавить/удалить оснастку → Сертификаты → Учётная запись компьютера.
    2. Перейдите в Personal (Личные) → Certificates (Сертификаты).

3. Проверка сертификата LDAPS через PowerShell

Способ 1: Через TcpClient и SslStream (аналог OpenSSL)
Этот метод подключается к LDAPS-серверу и извлекает сертификат:
$server = "ldap.example.com"
$port = 636

$tcpClient = New-Object System.Net.Sockets.TcpClient
$tcpClient.Connect($server, $port)
$sslStream = New-Object System.Net.Security.SslStream($tcpClient.GetStream(), $false, {
    param($sender, $cert, $chain, $errors) 
    $global:ldapCert = $cert  # сохраняем сертификат
    return $true  # игнорируем ошибки SSL (например, самоподписанный сертификат)
})
$sslStream.AuthenticateAsClient($server)
$tcpClient.Close()

# Выводим информацию о сертификате
if ($global:ldapCert) {
    Write-Host "Сертификат LDAPS ($server):"
    Write-Host "Subject: $($global:ldapCert.Subject)"
    Write-Host "Issuer: $($global:ldapCert.Issuer)"
    Write-Host "Thumbprint: $($global:ldapCert.Thumbprint)"
    Write-Host "Expires: $($global:ldapCert.NotAfter)"
} else {
    Write-Host "Не удалось получить сертификат."
}

Способ 2: Через Certificate Store (если сертификат установлен локально)
Если LDAPS-сервер — это Active Directory, сертификат может храниться в хранилище Windows
# Поиск сертификатов с Server Authentication
$certs = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {
    $_.EnhancedKeyUsageList -like "*Server Authentication*"
}

# Вывод информации
foreach ($cert in $certs) {
    Write-Host "Subject: $($cert.Subject)"
    Write-Host "Thumbprint: $($cert.Thumbprint)"
    Write-Host "Expires: $($cert.NotAfter)"
    Write-Host "---"
}

4. Проверка сертификата LDAPS через CAPI2-логи

CAPI2 — это подсистема Windows для работы с сертификатами. Её логи могут содержать информацию о сертификатах, используемых в LDAPS.

1. Включение логирования CAPI2
  1.1 Откройте Просмотр событий (eventvwr.msc).
  1.2 Перейдите в: Журналы приложений и служб → Microsoft → Windows → CAPI2
  1.3 Если логи пустые, включите логирование:
wevtutil set-log Microsoft-Windows-CAPI2/Operational /enabled:true
  1.4 Попробуйте подключиться к LDAPS (например, через ldp.exe или PowerShell).

2. Анализ логов CAPI2
  2.1 Откройте Event Viewer → CAPI2 Operational.
  2.2 Ищите события с ID 11 (успешная проверка сертификата) или ID 90 (SSL-подключение).
  2.3 В событиях будет указан Thumbprint сертификата.


Примечание:
Если контроллер домена Windows Server 2008 или более поздней версии находит в своём хранилище несколько сертификатов, он автоматически выбирает сертификат, срок действия которого истекает в будущем. Затем, если срок действия вашего текущего сертификата подходит к концу, вы можете добавить в хранилище заменяющий сертификат, и AD DS автоматически переключится на его использование.
Комментарии:
Прокомментировать
При использовании материалов ссылка на сайт UserMan.ru обязательна.
Политика конфиденциальности
Пользовательское соглашение
UserMan.ru © 2017-2025
Соцсети: VK