Некоторые картинки не загружаются из РФ и РК, используйте VPN.

среда, 12 июля 2023 г.

Exchange 403 4.7.0 TLS handshake failed

Обратили внимание, что отчеты из консоли nexcloud приходят через день. Решил разобраться, в итоге выяснилось, что отчет не приходит только в те дни, когда ведущий сервер mail3, а не Mail2 (кластер из двух серверов Exchange). При этом в логах наблюдается такая запись:

Jul 11 23:29:47 nxtcloud sm-mta[1432736]: 36BGo5fO1427601: to=<aa@domain.ru>, ctladdr=<user@nxtcloud.domain.ru> (1000/1000), delay=03:39:42, xdelay=00:00:00, mailer=esmtp, pri=2100378, relay=mail.domain.ru. [10.20.0.222], dsn=4.0.0, stat=Deferred: 403 4.7.0 TLS handshake failed.

Тестовое подключение проваливается:

user@nextcloud:~$ openssl s_client -starttls smtp -connect mail3.domain.ru:465
CONNECTED(00000003)
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 406 bytes and written 341 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

Порты открыты.

При этом к imap подключается как положено

openssl s_client -crlf -connect mail3.domain.ru:993

Пока ковырял обнаружилось то, что я не могу экспортировать сертификат, плюс их оказалось несколько.

С mail2 таких проблем не было. Открыл консоль "Сертификаты (локальный компьютер)" на mail3, там также три сертификата в локальных и один в доверенных. Естественно, что из трех только один без ошибок, ибо он же в доверенных (проверял по серийному номеру). Так как все три были нацелены только на SMTP, я удалил ошибочные, но проблема осталась.
При этом хэш-алгоритм подписи у неисправных сертификатов - sha1, а у остальных же - sha256

На самом деле тут сразу становится все понятно, да есть куча сертификатов в списке, но по умолчанию используется именно ошибочный. Выпускаем новый сертификат прямо в ECP или как положено по регламенту, прописываем все как удобно. Далее в ECP открываем новый сертификат, в службах ставим smtp и ок, система задаст вопрос, а не заменить ли нам сертификат по умолчанию?

Проверка прошла успешно

Назначаем имеющийся сертификат через PowerShell, первым делом получаем отпечаток и указываем его во второй команде.

[PS] C:\Windows\system32> Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains | where {$_.Services -match "SMTP"} | fl
[PS] C:\Windows\system32>Enable-ExchangeCertificate -Server mail3 -Thumbprint 897B12E9BABCA8BCF2B69B3417334C2399B5F5A1 -Services IMAP, POP, IIS, SMTP

Как проверить:

[PS] C:\Windows\system32> Get-TransportService | Select-Object Name, InternalTransportCertificateThumbprint, ExternalDNSServers

Комментариев нет:

Отправить комментарий