无法通过 SSL 使用我的虚拟域从外部网络邮件发送邮件

无法通过 SSL 使用我的虚拟域从外部网络邮件发送邮件

我在使用 postfix 通过 SSL 从外部 webmail 发送邮件时遇到了问题。我的服务器上有多个域设置,这些域在 postfix 中使用 mysql 配置。当我使用我的主域 domain1.com 发送邮件时,一切正常,但如果从 domain2.com 发送邮件,我的日志中会出现以下信息:

请注意,如果我在网络邮件上禁用 SSL,它就可以正常工作。

connect from unknown[78.209.78.XXX]
timeout after UNKNOWN from unknown[78.209.78.XXX]
disconnect from unknown[78.209.78.XXX]

这是我的main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
disable_vrfy_command = yes
smtpd_helo_required = yes
append_dot_mydomain = no

mydomain= domain1.com
myhostname = domain1.com
myorigin = $mydomain
mydestination = XXX.kimsufi.com, localhost.kimsufi.com, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

alias_maps = hash:/etc/aliases
queue_directory = /var/spool/postfix
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

virtual_mailbox_domains = mysql:/etc/postfix/mysql/mailbox-domains.cf
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/alias-maps.cf
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom

mail local si actif
smtpd_recipient_restrictions = permit_sasl_authenticated,
 permit_mynetworks,
 reject_unauth_destination,
 check_policy_service unix:private/policy, # SPF
 permit
 #check_relay_domains

smtpd_sasl_auth_enable  = yes
smtpd_sasl_type         = dovecot
smtpd_sasl_path         = private/authnoactive, mutual_auth
broken_sasl_auth_clients = yes

# DKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891

请注意,在网络邮件上,我已将 smtp 服务器设置为 mail.domain1.com,因为我已经读到我必须使用在 tls 证书中定义为通用名称的域。

我想要的是让它与 SSL 一起工作。你知道它为什么不工作吗?

编辑


以下是新信息:

问题似乎与域 1 或域 2 无关,而只发生在新配置中。我有一个设置了一年多的域,一切运行正常。我从我的网络邮件中删除了它并重新配置了它,现在我无法发送邮件。

当我配置它时,我看到它要求我使用我的 https 证书而不是 postfix 证书。所以问题可能出在这里,但我不知道如何解决它。

这是我的 Apache 配置:

<VirtualHost _default_:80>
  include /etc/apache2/domain.conf

</VirtualHost>

<VirtualHost _default_:443>
  include /etc/apache2/domain.conf

  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/cert-domain.com.crt
  SSLCertificateKeyFile /etc/apache2/ssl/domain.com.key
  SSLCACertificateFile /etc/apache2/ssl/GandiStandardSSLCA.pem
  SSLVerifyClient None
</VirtualHost>

另外,如果我执行 openssl s_client -connect localhost:465 我会得到:

CONNECTED(00000003)
11508:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:607:

我不知道自签名证书是否正常。

答案1

Postfix 并未监听smtpd_tls_wrappermode端口 465,而是作为标准 smtp 服务器。

master.cf应该包含类似于以下内容的(多部分)行

smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

然而,它可能只有

smtps inet n-n--smtpd

相关内容