リモートSMTPサーバーのTLS証明書を検査する方法は?


63

Windows Server 2008上で実行されているExchange 2007サーバーがあります。クライアントは別のベンダーのメールサーバーを使用します。それらのセキュリティポリシーでは、強制TLSを使用する必要があります。これは最近まで正常に機能していました。

現在、Exchangeがメールをクライアントのサーバーに配信しようとすると、次のログが記録されます。

ourclient.comのトランスポート層セキュリティ(TLS)証明書の検証がステータス「UntrustedRoot」で失敗したため、コネクタ「デフォルトの外部メール」上のドメインセキュアドメイン「ourclient.com」へのセキュア接続を確立できませんでした。ourclient.comの管理者に連絡して問題を解決するか、ドメインセキュアリストからドメインを削除してください。

ourclient.comをTLSSendDomainSecureListから削除すると、日和見TLSを使用してメッセージが正常に配信されますが、これはせいぜい一時的な回避策です。

クライアントは、非常に大規模でセキュリティに敏感な国際企業です。弊社のIT担当者は、TLS証明書の変更を認識していないと主張しています。検証エラーをトラブルシューティングできるように、証明書を生成した機関を特定するように繰り返し求めましたが、これまでのところ、彼は答えを提供できませんでした。私が知っている限りでは、クライアントは有効なTLS証明書を社内の認証局からのものに置き換えることができました。

WebブラウザでリモートHTTPSサーバーの証明書に対してできるように、リモートSMTPサーバーのTLS証明書を手動で検査する方法を知っている人はいますか?誰が証明書を発行したかを判断し、その情報をExchangeサーバー上の信頼されたルート証明書のリストと比較すると非常に役立ちます。

回答:


100

OpenSSLを使用できます。で証明書を確認する必要がある場合STARTTLSは、

openssl s_client -connect mail.example.com:25 -starttls smtp

または、標準の安全なsmtpポートの場合:

openssl s_client -connect mail.example.com:465

綺麗な。OpenSSLでの同様の検証エラーですが、より詳細です。これで、問題はメールサーバーに限定されないことがわかりました。
スカイホーク

1
@Miles:Windowsでこれを試している場合openssl、Windows証明書ストアの使用をサポートしていないことを忘れないでください。そのため、常に検証に失敗します。
-grawity

3
サーバー証明書の有効期限を確認するにはどうすればよいですか?
nimrodm

9
@nimrodm:証明書を「openssl x509
-text

2
@DanAndreatta @nimrodmまたはそれをパイプしてopenssl x509 -noout -dates出力を短くします。
スキッピールグラングロウ

9

これは古い質問ですが、電子メールサーバーでSSL証明書の有効性を確認したい管理者にとって今日でも関連する質問です。

https://www.checktls.comにアクセスして、無料でテストを実行できます


これは私のために働いた、コマンドラインよりも読み
やすかった-marijnz0r

1
サイトでテストを見つけることができません。ポインタはありますか?
Zero3

1
「Internet Secure Email is Easy」セクションに入力ボックスがあり、ボタン「CheckTLS」が黒色で表示されます。
ケタンパテル

@KetanPatel Aaaand ...「インターネットの安全なメールは簡単」セクションはどこにありますか?
Zero3

残念ながら、これはDNSにリストされているSMTPサーバーのドメインをチェックし、それらを照会するようですが、サーバーを直接チェックしたかったのです。
kerridge0

4

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ライブラリが取得され、インストールが少し簡単になります。


PythonのSSLモジュールのドキュメント:「このモジュールはOpenSSLライブラリを使用しています。」したがって、この答えは、何が起こっているのかという点で少し誤解を招く可能性があります。
fbmd

@fbmdフィードバックをありがとう。この編集は改善されていますか(最後の文を参照)?
16

はい、それは良いです。
fbmd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.