【发布时间】:2014-06-01 01:42:14
【问题描述】:
我有两台机器,一台运行 Ubuntu,一台运行 Debian,都运行 Postfix。目的是机器#2 成为机器#1 的 SMTP 中继/智能主机。我为两台机器创建了一个 CA 并颁发了证书:#2 的服务器证书和#1 的客户端证书。
当从 #1 发送电子邮件时(通过让 MUA 与 localhost:25 上的 Postfix 对话,意图将电子邮件中继到 #2),基本的事情工作正常:机器可以相互交流并且实际上进行了中继尝试。这个想法是如果从 #1 提供有效的客户端 SSL/TLS 证书,则允许在 #2 上进行中继。
#2的相关配置为:
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 2
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/private/cert2.pem
smtpd_tls_key_file = /etc/ssl/private/key2-d.pem
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_auth_only = yes
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination permit_tls_all_clientcerts
#1 上的配置是:
smtp_tls_CAfile = /etc/ssl/certs/cacert.pem
smtp_tls_cert_file = /etc/ssl/private/cert1.pem
smtp_tls_key_file = /etc/ssl/private/key1-d.pem
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = verify
smtp_tls_loglevel = 2
Machine#1 连接到 #2,启用 STARTTLS,日志文件显示它成功验证了来自 #2 的证书,并尝试中继消息。 但是,它似乎没有将客户端证书发送到#2,并且#2 拒绝中继消息。
来自 #1 的日志条目:
Apr 17 01:18:14 mail1 postfix/smtp[30250]: Verified TLS connection established to mail2[x.x.x.x]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Apr 17 01:18:14 mail1 postfix/smtp[30244]: 8A2328BDB4: to=<addr@gmail.com>, relay=mail2[x.x.x.x]:25, delay=3488, delays=3486/0.41/0.85/0.19, dsn=4.7.1, status=deferred (host mail2[x.x.x.x] said: 454 4.7.1 <addr@gmail.com>: Relay access denied (in reply to RCPT TO command))
来自 #2 的日志条目:
Apr 17 01:18:13 mail2 postfix/smtpd[28798]: Anonymous TLS connection established from unknown[y.y.y.y]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Apr 17 01:18:13 mail2 postfix/smtpd[28798]: NOQUEUE: reject: RCPT from unknown[y.y.y.y]: 454 4.7.1 <addr@gmail.com>: Relay access denied; from=<addr@mail1> to=<addr@gmail.com> proto=ESMTP helo=<mail1>
有什么想法吗?我的假设是 #1 没有在 mail2 日志中的“已建立匿名 TLS 连接”部分发送其客户端证书。
【问题讨论】:
标签: email ssl postfix-mta client-certificates