由于“握手错误”,无法使用STARTTLS连接到Outlook SMTP

时间:2018-09-28 16:44:09

标签: sendmail sslhandshakeexception

我们的(发送邮件)邮件服务器无法发送邮件到Outlook和Proofpoint Essentials,因为它们收到了403 4.7.0 TLS handhake failed.

例如,在我的sendmail日志中,我看到:

Sep 28 07:47:28 vm2 sendmail[1126]: w8SElRTP001126: from=<redacted_sender>, size=1423, class=0, nrcpts=2, msgid=<redacted_msgid>, proto=ESMTP, daemon=TLSMTA, relay=redacted_hostname [redacted_ip]
Sep 28 07:47:31 vm2 sendmail[1562]: STARTTLS=client, error: connect failed=0, SSL_error=5, errno=0, retry=-1
Sep 28 07:47:31 vm2 sendmail[1562]: ruleset=tls_server, arg1=SOFTWARE, relay=redacted_client.mail.protection.outlook.com, reject=403 4.7.0 TLS handshake failed.
Sep 28 07:47:31 vm2 sendmail[1562]: w8SElRTP001126: to=<redacted_recipient>, ctladdr=<redacted_sender> (25404/25405), delay=00:00:04, xdelay=00:00:01, mailer=esmtp, pri=62113, relay=redacted_client.mail.protection.outlook.com. [213.199.154.170], dsn=4.0.0, stat=Deferred: 403 4.7.0 TLS handshake failed.

我的服务器正在运行CentOS5(是的,我知道:很旧),带有sendmail-8.13.8-10.el5_11和openssl-0.9.8e-36.el5_11。我的sendmail配置包括:

O CipherList=kDH:AES
O ServerSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3 +SSL_OP_CIPHER_SERVER_PREFERENCE
O ClientSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3

我发现的有关此问题的大多数信息都要求检查证书上的到期日期。
服务器使用来自我们自己的自签名CA证书的证书,其中CA和服务器证书都具有有效的到期日期。我以为问题可能出在自签名CA证书上,但是我不确定,因为openssl s_client也会因握手失败而失败。 openssl s_client命令中完全没有定义证书:

% openssl  s_client -starttls smtp -connect redacted-client.mail.protection.outlook.com:25 -msg
CONNECTED(00000003)
>>> SSL 2.0 [length 0077], CLIENT-HELLO
    01 03 01 00 4e 00 00 00 20 00 00 39 00 00 38 00
    00 35 00 00 16 00 00 13 00 00 0a 07 00 c0 00 00
    33 00 00 32 00 00 2f 03 00 80 00 00 05 00 00 04
    01 00 80 00 00 15 00 00 12 00 00 09 06 00 40 00
    00 14 00 00 11 00 00 08 00 00 06 04 00 80 00 00
    03 02 00 80 00 00 ff a7 5e b1 c6 2b fe 4e 10 fc
    fb ca 6d 85 4a 39 2b c8 4b 28 78 2e 6c 4c a9 35
    be 5b 87 f5 ed d6 8d
3958:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:

指定-tls1时也会发生类似的故障。

我可以使用同一命令连接gmail和大多数其他SMTP服务器,而不会出现问题。

我还使用openssl s_clienttls1_1在CentOS7计算机上尝试了tls1_2命令,但无法连接到Outlook(但是gmail可以工作)。例如:

    centos7% openssl  s_client -starttls smtp -connect client_redacted.mail.protection.outlook.com:25 -msg -tls1_2
    CONNECTED(00000003)
    >>> ??? [length 0005]
        16 03 01 01 1c
    >>> TLS 1.2 Handshake [length 011c], ClientHello
        01 00 01 18 03 03 f6 c5 f9 75 6c 56 06 45 fb 1d
        93 84 f9 9d 6e 88 ea 6e 51 3a 5e 87 32 c1 ac 17
        d8 d7 bf ed 3a d9 00 00 ac c0 30 c0 2c c0 28 c0
        24 c0 14 c0 0a 00 a5 00 a3 00 a1 00 9f 00 6b 00
        6a 00 69 00 68 00 39 00 38 00 37 00 36 00 88 00
        87 00 86 00 85 c0 32 c0 2e c0 2a c0 26 c0 0f c0
        05 00 9d 00 3d 00 35 00 84 c0 2f c0 2b c0 27 c0
        23 c0 13 c0 09 00 a4 00 a2 00 a0 00 9e 00 67 00
        40 00 3f 00 3e 00 33 00 32 00 31 00 30 00 9a 00
        99 00 98 00 97 00 45 00 44 00 43 00 42 c0 31 c0
        2d c0 29 c0 25 c0 0e c0 04 00 9c 00 3c 00 2f 00
        96 00 41 c0 12 c0 08 00 16 00 13 00 10 00 0d c0
        0d c0 03 00 0a 00 07 c0 11 c0 07 c0 0c c0 02 00
        05 00 04 00 ff 01 00 00 43 00 0b 00 04 03 00 01
        02 00 0a 00 0a 00 08 00 17 00 19 00 18 00 16 00
        23 00 00 00 0d 00 20 00 1e 06 01 06 02 06 03 05
        01 05 02 05 03 04 01 04 02 04 03 03 01 03 02 03
        03 02 01 02 02 02 03 00 0f 00 01 01
    <<< ??? [length 0005]
        16 03 03 0d e9
    139972946728864:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659:
    ---
    no peer certificate available
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 1806 bytes and written 0 bytes
    ---
    New, (NONE), Cipher is (NONE)
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    SSL-Session:
        Protocol  : TLSv1.2
        Cipher    : 0000
        Session-ID:
        Session-ID-ctx:
        Master-Key:
        Key-Arg   : None
        Krb5 Principal: None
        PSK identity: None
        PSK identity hint: None
        Start Time: 1538152469
        Timeout   : 7200 (sec)
        Verify return code: 0 (ok)
    ---

我也尝试了几种不同的建议密码,但仍然没有乐趣。

Outlook是否可能需要来自已知CA的证书?那将意味着openssl s_client问题有点像是一团红鱼,因为它根本没有使用客户证书。但是,鉴于数据我无法告知。

有人知道允许我的服务器发送到Outlook的魔咒或配置吗?

1 个答案:

答案 0 :(得分:0)

尝试使用端口587而不是25。