web-dev-qa-db-ja.com

ポート587、25、110、465、995、143、993でSSL証明書を表示する

ポート587、25、110、465、995、143および993で使用されているSSL証明書の詳細を表示するにはどうすればよいですか

これらのポートを保護するために使用されているドメイン名を確認する必要があります。

私はこことグーグルで検索しましたが、何も見つかりません!

22
user1398287

OpenSSLを使用します(ほぼすべてのLinuxディストリビューションにデフォルトでインストールされています。Windows用のバイナリビルドは Shining Light Productions )から入手することもできます。

openssl s_client -connect Host:port -servername Host [-starttls protocol]

ここで、Hostは接続するホスト、portはポート番号です。

-servername Hostは、TLSハンドシェイクにホスト名を( サーバー名表示拡張 を介して)含め、同じIPで複数の保護されたリソースをホストするサーバーが正しい証明書を選択できるようにします。

-starttls protocol部分は、チェックしているサーバーがデフォルトでプレーンテキストセッションを開始し、後でクライアントが要求したときにSSL/TLSに切り替える場合にのみ必要です(この場合、プロトコルはsmtppop3imapftpxmpp);サーバー構成にスイッチが必要かどうかを確認し、それに応じてコマンドラインオプションを含める必要があります。

47

OpenSSL を使用できます:

openssl s_client -connect x.x.x.x:port

(チェーン全体に-showcertsオプションを使用することもできます。)

これらのポートで通常のサービスが実行されていると想定すると、ポート465、995、993の証明書が表示されます。これらはSSL/TLS接続が最初に開始されるプロトコルであるためです。

ポート587、25(SMTP)、110(POP3)および143(IMAP)は、「START TLS」アップグレードを介してSSL/TLSを使用します。必要に応じて、-starttls protを追加する必要があります。ここで、protsmtpimapまたはpop3です。

これらのサービスのいずれかがサーバー名表示をサポートしている場合、最初に正しいホスト名を要求しないと、すべての証明書を取得できない可能性があることに注意してください。 (ただし、SNIはおそらくこれらのプロトコルよりもHTTPSの方が一般的です。)

証明書を取得したら、PEMブロック(BEGIN/END区切り文字の間)をopenssl x509 -text -nooutの入力にコピー/貼り付け(またはパイプ)できます。ホスト名は、サブジェクトの別名(DNSエントリ)にあるか、存在しない場合はサブジェクトDNのCNにある必要があります。

11
Bruno