使用 SSL 测试 SMTP 服务器?

jra*_*dxl 5 smtp openssl

我想确保 SSL/TLS 连接确实在端口 465 上建立到我的 SMTP 服务器。(服务器在 Ubuntu 14.04 上运行)

使用:-

openssl s_client -connect example.co.uk:465

我得到如下所示的响应...

请注意,我收到了以下消息:-

“验证返回码:20(无法获得本地颁发者证书)”

但是,我可以继续与 EHLO 和 AUTH LOGIN 对话。

这是否意味着我“不在”安全连接上,并继续未加密?

谢谢约翰

CONNECTED(00000003)
---
Certificate chain
 0 s:/CN=example.co.uk
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
<removed for clarity>
-----END CERTIFICATE-----
subject=/CN=example.co.uk
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
---
SSL handshake has read 3050 bytes and written 509 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-DES-CBC3-SHA
    Session-ID: 5728D30BFCCB912A3DEC177610B5CF260F35B9E0F2E6F8E51FC8B59B80E377FD
    Session-ID-ctx: 
    Master-Key: 2E2B2E3A9AD05E4F8DF346C3E0C017ED2E8203D8C8391391F8F0042065FE7688DA8D836B5C31E3A5F9C77E8353CFA10C
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1462293259
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---
220 example.co.uk - Xeams SMTP server; Version: 4.9 - build: 5819; 5/3/16 5:34 PM
250-april.example.co.uk. Please to meet you
250-SIZE 20971520
250-AUTH LOGIN
250-AUTH=LOGIN
250 OK
---
220 example.co.uk - Xeams SMTP server; Version: 4.9 - build: 5819; 5/3/16 5:37 PM
EHLO example.co.uk
250-april.example.co.uk. Please to meet you
250-SIZE 20971520
250-AUTH LOGIN
250-AUTH=LOGIN
250 OK
AUTH LOGIN
334 VXNlcm5hbWU6
Run Code Online (Sandbox Code Playgroud)

Sta*_*uff 6

它已加密,但未经过身份验证。

这是否意味着我“不在”安全连接上,并继续未加密?

不,它是加密的。但它没有经过身份验证。因此,虽然我们确实知道我们正在进行加密对话,但我们不知道与谁进行了对话。

这表明连接已加密:

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-DES-CBC3-SHA
Run Code Online (Sandbox Code Playgroud)

试试 testssl.sh

您正在使用s_client而不提供受信任 CA 的路径。默认情况下,OpenSSL 不再信任任何 CA。我认为它曾经做过,但在 5 多年前就停止了。从那时起,几乎每个连接都会出现这种无法找到本地发行者的错误。

但话虽如此:直接去寻找更好的东西,并明确设计来测试和评估 SSL/TLS 连接:http : //testssl.sh/

它是一个很好的 OpenSSL 包装器。

您也可以尝试这些来测试加密的 SMTP:http://checktls.com/https://www.htbridge.com/ssl/


ale*_*xus 2

您问题的输出表明您正在使用SSL该连接。

非 SSL 输出将如下所示:

$ openssl s_client -connect alexus.biz:80
CONNECTED(00000003)
139684765820832:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:769:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 247 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
$ 
Run Code Online (Sandbox Code Playgroud)