![telnet 或 netcat 客户端可以通过 SSL 通信吗?](https://linux22.com/image/1292504/telnet%20%E6%88%96%20netcat%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20SSL%20%E9%80%9A%E4%BF%A1%E5%90%97%EF%BC%9F.png)
我想通过 SSL、HTTPS 和其他基于安全文本的 Internet 协议(通过 SSL/TLS)测试 IMAP 客户端连接,就像我使用 telnet 或 netcat 时一样(如果它们不是通过安全协议进行隧道传输的话)。有没有办法让 telnet 或 netcat 通过 SSL/TLS(例如使用管道或替代程序)?
答案1
没有 Telnet/Netcat 客户端 - 它们是两个独立的程序,并且存在至少10 个不同的 Telnet 客户端和至少 6 个不同的 Netcat 版本(原始 netcat、GNU netcat、OpenBSD netcat、nmap 的 ncat;其余的忘记了)。
首选工具来自 TLS 库本身。不过它们可能有点冗长。
加密传输协议 在Linux上有一个TLS客户端工具:
gnutls-cli imap.gmail.com -p 993
用于
-s
STARTTLS;您需要手动输入必要的协议命令并CtrlD在准备好时按下。支持IPv6,默认验证服务器证书。
OpenSSL有一个 TLS 客户端工具:
openssl s_client -connect imap.gmail.com:993
这适用于所有操作系统。STARTTLS 通过
-starttls imap
或-starttls smtp
选项支持,程序将自动协商。(虽然这样做会丢弃初始服务器回复,但通常没问题。)仅版本 ≥ 1.1 支持 IPv6。
仅版本 ≥ 1.0.2 (IIRC) 默认验证服务器证书;旧版本需要手动 -CApath 规范。
(我还想有用于测试 NSS 和 SChannel 的工具,但找不到。)
这些程序也使用相同的库,但配置旋钮可能更少。有些甚至默认跳过对等证书检查...
索卡特:
socat openssl:imap.gmail.com:993 stdio
阅读行为方便起见,可以使用以下模式:
socat ssl:imap.gmail.com:993 readline
不支持 STARTTLS。
酶联免疫吸附试验从 nmap 支持 TLS(但不支持 STARTTLS):
ncat --ssl imap.gmail.com 993
一些Telnet 客户端,例如telnet-sslDebian 上的软件包,也支持 TLS:
telnet-ssl -z ssl imap.gmail.com 993
starttls
可以从退出菜单中激活 STARTTLS Ctrl]。
答案2
你可能想看看openssl s_client
:
openssl s_client -connect dummy.com:8443
答案3
有一个名为的程序stunnel
,它可以将不支持 SSL 的客户端或服务器转变为支持 SSL 的客户端或服务器,用于客户端、服务器端或两者,然后您可以告诉它监听和转发到哪个端口。
注意:这还好,尽管我的措辞有点不同。您可以查看之前的编辑来了解我写了什么。
答案4
为了完整起见,有(或曾经有?)一种叫做远程登录,一种“通过 TLS/SSL 进行的安全 Telnet”。Debian 仍在软件包中提供 telnetd 服务器组件telnet-ssl。根据链接的资源,似乎应该存在一个 telnet 客户端,它有一个“-z 开关”来使 telnet 命令使用 SSL - 但我找不到这个二进制文件。不过,这个二进制文件可以作为您请求的调试辅助工具。