У нас есть сервер Exchange 2007, работающий под управлением Windows Server 2008. Наш клиент использует почтовый сервер другого производителя. Их политики безопасности требуют, чтобы мы использовали принудительный TLS. До недавнего времени это работало нормально.
Теперь, когда Exchange пытается доставить почту на сервер клиента, он регистрирует следующее:
Не удалось установить безопасное соединение с защищенным доменом доменом «ourclient.com» на соединителе «Внешняя почта по умолчанию», поскольку проверка сертификата безопасности транспортного уровня (TLS) для ourclient.com завершилась неудачно со статусом «UntrustedRoot». Обратитесь к администратору ourclient.com для решения проблемы или удалите домен из списка защищенных доменов.
Удаление ourclient.com из TLSSendDomainSecureList приводит к успешной доставке сообщений с использованием гибкого TLS, но в лучшем случае это временный обходной путь.
Заказчик - чрезвычайно крупная международная корпорация, которая очень чувствительна к вопросам безопасности. Наш ИТ-специалист утверждает, что не знает об изменениях в их сертификате TLS. Я неоднократно просил его указать орган, который сгенерировал сертификат, чтобы я мог устранить ошибку проверки, но до сих пор он не мог дать ответ. Насколько я знаю, наш клиент мог заменить свой действующий сертификат TLS сертификатом от внутреннего центра сертификации.
Кто-нибудь знает способ вручную проверить сертификат TLS удаленного SMTP-сервера, как это можно сделать для сертификата удаленного HTTPS-сервера в веб-браузере? Было бы очень полезно определить, кто выпустил сертификат, и сравнить эту информацию со списком доверенных корневых сертификатов на нашем сервере Exchange.
Вы можете использовать OpenSSL. Если вам нужно проверить сертификат с STARTTLS
, тогда просто сделай
openssl s_client -connect mail.example.com:25 -starttls smtp
или для стандартного безопасного порта smtp:
openssl s_client -connect mail.example.com:465
Я знаю, что это старый вопрос, но он все еще актуален даже сегодня для администраторов, желающих подтвердить действительность сертификата SSL на своих почтовых серверах.
Вы могли бы посетить https://www.checktls.com и запустите тест бесплатно.
Если у вас нет OpenSSL, вы также можете использовать этот фрагмент Python:
import smtplib
import ssl
connection = smtplib.SMTP()
connection.connect('[hostname].')
connection.starttls()
print ssl.DER_cert_to_PEM_cert(connection.sock.getpeercert(binary_form=True))
где [hostname] - это сервер.
Источник: https://support.google.com/a/answer/6180220
Это вытянет за вас библиотеку OpenSSL, что немного упростит установку.