Postfix
Postfix 發送錯誤:必鬚髮出 STARTTLS 命令
執行 Ubuntu 12.04 並嘗試將 postfix 配置為通過 GMAIL 中繼發送和接收。我遇到了連接問題,尤其是 TLS。嘗試了一堆故障排除解決方案,並更改了我的 main.cf 以解決 TLS,但仍然收到以下錯誤。
嘗試調試連接問題:
`root@mailservice:/etc/postfix# openssl s_client -connect localhost:587 -starttls smtp`
我收到了這些錯誤
`connect: Connection refused' 'connect:errno=111`
在我的日誌中我看到:
Jun 11 13:54:31 mailservice postfix/smtp[3765]: warning: cannot get RSA certificate from file /etc/postfix/cert.pem: disabling TLS support Jun 11 13:54:31 mailservice postfix/smtp[3765]: warning: TLS library problem: 3765:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE: Jun 11 13:54:31 mailservice postfix/smtp[3765]: warning: TLS library problem: 3765:error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib:ssl_rsa.c:729: Jun 11 13:54:31 mailservice postfix/smtp[3765]: 9986B6846A: to= <mary.cutrali@gmail.com>, relay=smtp.gmail.com[173.194.77.109]:587, delay=0.15, delays=0.02/0.02/0.09/0.02, dsn=5.7.0, status=bounced (host smtp.gmail.com[173.194.77.109] said: 530 5.7.0 Must issue a STARTTLS command first. hd9sm12170509obc.6 (in reply to MAIL FROM command))
我的 main.cf 的內容(與 TLS 有關)如下所示:
#TLS Parameters smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache #TLS Settings smtp_use_tls = yes smtp_tls_security_level = may smtp_tls_loglevel = 1 smtp_enforce_tls = yes smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_tls_cert_file = /etc/postfix/cert.pem smtp_tls_key_file = $smtp_tls_cert_file smtp_tls_session_cache_dataabase = btree:/var/run/smtp_tls_session_cache smtp_tls_note_starttls_offer = yes smtpd_use_tls = yes smtpd_tls_security)level = may smtpd_tls_auth_only = no smtpd_tls_CAfile = /etc/postfix/cacert.pem smtpd_tls_cert_file = /etc/postfix/cert.pem smtpd_tls_key_file = /etc/postfix/key.pem smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
據我所知,一切都是為了建立正確的 TLS 連接,我不確定在 main.cf 或其他地方需要更改哪些內容才能發送郵件。
Postix 說它無法訪問證書。它們不是以過於嚴格的權限創建或儲存的。
您需要檢查後綴受限使用者是否可以訪問所有文件。您可以檢查哪個使用者後綴執行:
postconf mail_owner
之後,您應該授予該使用者訪問配置文件中提到的所有密鑰/證書的權限。
例如我的鑰匙看起來像:
-r--r----- 1 postfix cyrus 668 4 Apr 13:17 somehost.pk
來自: http ://www.postfix.org/TLS_README.html …
伺服器端 TLS 活動日誌記錄…
僅在出現問題時使用日誌級別 3。
更多的…
要獲取有關 Postfix SMTP 伺服器 TLS 活動的更多資訊,您可以將日誌級別從 0..4 提高。每個日誌記錄級別還包括以較低日誌記錄級別記錄的資訊。
級別 Postfix 2.9 和更高版本 早期版本。
- 0 僅記錄 TLS 握手完成的摘要消息 — 如果不需要客戶端證書驗證,則不記錄客戶端證書信任鏈驗證錯誤。禁用 TLS 活動的日誌記錄。
- 1 同時記錄信任鏈驗證錯誤和對等證書摘要資訊。同時記錄 TLS 握手和證書資訊。
- 2 還在 TLS 協商期間記錄級別。
- 3 同時記錄 TLS 協商過程的十六進制和 ASCII 轉儲。
- 4 還記錄 STARTTLS 後完整傳輸的十六進制和 ASCII 轉儲。
僅在出現問題時使用日誌級別 3。強烈建議不要使用日誌級別 4。