26

如何查看端口 587、25、110、465、995、143 和 993 上使用的 SSL 证书详细信息

我需要检查使用哪个域名来保护这些端口。

我在这里和谷歌上搜索过,但找不到任何东西!

4

2 回答 2

50

使用 OpenSSL(默认安装在几乎所有 Linux 发行版上,您还可以从Shining Light Productions获得适用于 Windows 的二进制构建):

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

host您要连接的主机在哪里,port是端口号。

-servername host将在 TLS 握手中包含主机名(通过服务器名称指示扩展),以允许在同一 IP 上托管多个受保护资源的服务器选择正确的证书。

仅当您正在检查的服务器默认启动纯文本会话并稍后切换到 SSL/TLS 时,才需要该-starttls protocol部分,当客户端请求它时(在这种情况下,协议必须是smtp, pop3, imap, ftp,之一xmpp);您应该检查您的服务器配置是否需要开关并相应地包含命令行选项。

于 2012-07-31T10:57:52.503 回答
12

您可以使用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 protwhere protissmtp或。imappop3

请注意,如果这些服务中的任何一个支持服务器名称指示,如果您一开始没有请求正确的主机名,您可能无法获得所有证书。(不过,对于 HTTPS,SNI 可能比这些协议更常见。)

获得证书后,您可以将 PEM 块(在BEGIN/END分隔符之间)复制/粘贴(或管道)到openssl x509 -text -noout. 主机名应在主题备用名称(DNS 条目)中,如果不存在,则应在主题 DN 的 CN 中。

于 2012-07-31T10:57:23.813 回答