Debian

無法通過 ssl 從外部網路郵件使用我的虛擬域發送郵件

  • April 17, 2013

我在使用 postfix 從外部網路郵件通過 SSL 發送郵件時遇到問題。我在我的伺服器上使用 mysql 在後綴中配置了幾個域設置。當我使用我的主域 domain1.com 發送郵件時,一切正常,但如果從 domain2.com 發送郵件,我會將其寫入我的日誌:

請注意,如果我在 webmail 上禁用 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

請注意,在 webmail 上,我已將 smtp 伺服器設置為 mail.domain1.com,因為我已閱讀我必須使用在 tls 證書中定義為 Common Name 的域。

我想要的是讓它與 SSL 一起工作。關於它為什麼不起作用的任何想法?

編輯


以下是新資訊:

似乎該問題與 domain1 或 domain2 無關,而僅在新配置中出現。我有一個域設置了一年多,一切正常。我從我的網路郵件中刪除它並重新配置它,現在我無法發送郵件。

當我配置它時,我看到它要求我使用我的 https 證書而不是後綴證書。所以也許問題來自那裡,但我不知道如何解決它。

這是我的apache conf:

<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:

我不知道自簽名證書是否正常。

Postfix 不是監聽smtpd_tls_wrappermode465 埠,而是作為標準的 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

引用自:https://serverfault.com/questions/487156