無法通過 ssl 從外部網路郵件使用我的虛擬域發送郵件
我在使用 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_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