通过telnet进行SMTP STARTTLS证书协商

Gau*_*cha 36 smtp telnet starttls

我试图在sendmail中启动,但我不知道如何使用证书.请建议我的方式

> telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 <machinename> ESMTP Sendmail <version>; <date>;localhost(OK)-localhost [127.0.0.1]
EHLO localhost
250-<mahinename> Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-STARTTLS
250-DELIVERBY
250 HELP
STARTTLS
220 2.0.0 Ready to start TLS
Run Code Online (Sandbox Code Playgroud)

何时以及如何使用/提供证书?

Sim*_*mon 70

你不能,因为一旦你开始使用TLS,对话就会被加密,你可能不会说那种语言;)

以下是您可以做的事情:

openssl s_client -debug -starttls smtp -crlf -connect localhost:25
Run Code Online (Sandbox Code Playgroud)

OpenSSL将为您执行STARTTLS握手,您将能够从那里接听对话(即时自动解密).

  • openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf -ign_eof (3认同)
  • 也许端口需要为“ 587”或“ 465”? (2认同)
  • FYI @ScottStensland今天尝试这个我发现命令似乎挂了,使用普通的`telnet smtp.gmail.com 587`表示它试图使用IPv6地址进行通信.在我的openssl命令行中添加"-4"会强制进行IPv4协商,并且成功完成.`openssl s_client -starttls smtp -4 -connect smtp.gmail.com:587 -crlf -ign_eof` (2认同)