Как проверить сертификат TLS удаленного SMTP-сервера?
У нас есть сервер 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.
4 ответа
Вы можете использовать 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))
где [имя_хоста] - сервер.
Источник: https://support.google.com/a/answer/6180220
Это тянет за собой библиотеку OpenSSL, что делает установку немного проще.
- Посетите https://www.checktls.com/TestReceiver .
- В поле «Цель электронной почты» введите имя хоста или IP-адрес SMTP-сервера, который вы хотите протестировать (например: smtp.domain.com).
- В формате вывода выберите CertDetail.
- Запустить тест
- Найдите Эмитента в результатах