Fix lỗi STARTTLS: “didn’t find starttls in server response”

Khi triển khai SMTP/IMAP/POP3 với TLS, một lỗi phổ biến là:

didn't find starttls in server response

Lỗi này xảy ra khi client gửi lệnh STARTTLS, nhưng server không quảng bá khả năng STARTTLS trong banner. Kết quả: kết nối không thể nâng cấp sang TLS, gây gián đoạn dịch vụ hoặc cảnh báo “Insecure connection”.


Bối cảnh

  • STARTTLS là cơ chế upgrade từ plain connection → TLS trên port chuẩn (SMTP 25/587, IMAP 143, POP3 110).
  • Nếu server chưa bật TLS, khi client gửi EHLO sẽ không thấy STARTTLS trong response.
  • Nguyên nhân thường gặp:
    • Mail server (Postfix, Dovecot, Exchange, Sendmail…) chưa bật TLS.
    • Chứng chỉ không hợp lệ hoặc chưa khai báo trong cấu hình.
    • Client buộc dùng STARTTLS trong khi server chỉ hỗ trợ SMTPS (465) hoặc IMAPS (993).

Fix trên Postfix / Dovecot

Trong main.cf (Postfix):

# Cho phép TLS nếu client hỗ trợ

smtpd_tls_security_level = may

smtpd_tls_auth_only = yes



# Chỉ định cert và key

smtpd_tls_cert_file = /etc/ssl/certs/mail.pem

smtpd_tls_key_file = /etc/ssl/private/mail.key

smtpd_tls_CAfile = /etc/ssl/certs/ca.pem

Trong 10-ssl.conf (Dovecot):

ssl = required

ssl_cert = </etc/ssl/certs/mail.pem

ssl_key = </etc/ssl/private/mail.key

Sau đó restart dịch vụ:

systemctl restart postfix dovecot

Fix trên Microsoft Exchange

  • Kiểm tra Receive Connector đã bật TLS chưa:
Get-ReceiveConnector | fl Name, TlsDomainCapabilities
  • Nếu chưa, chỉnh FQDN và bật TLS:
Set-ReceiveConnector "Default Frontend EXCHANGE1" -Fqdn mail.example.com

Set-ReceiveConnector "Default Frontend EXCHANGE1" -TlsDomainCapabilities mail.example.com:AcceptOorgProtocol
  • Đảm bảo chứng chỉ SSL đúng (SAN/Wildcard) và gán cho dịch vụ:
Enable-ExchangeCertificate -Thumbprint <CertThumb> -Services SMTP,IMAP,POP

Best Practices

  • Dùng STARTTLS thay vì SSL cứng port (SMTPS 465, IMAPS 993, POP3S 995) để linh hoạt hơn.
  • Chứng chỉ SSL: dùng từ CA uy tín, SHA256, RSA ≥ 2048 hoặc ECC P-256.
  • Policy:
    • Với mail nội bộ: smtpd_tls_security_level = may.
    • Với internet-facing: smtpd_tls_security_level = encrypt để bắt buộc TLS.
  • Kiểm tra bằng OpenSSL:
openssl s_client -connect mail.example.com:587 -starttls smtp

Nếu server trả về 250-STARTTLS trong EHLO → đã fix thành công.


Kết luận

Lỗi “didn’t find starttls in server response” thường do server chưa bật hoặc chưa cấu hình đúng TLS.

  • Với Postfix/Dovecot: bật smtpd_tls_security_level, khai báo cert.
  • Với Exchange: cấu hình lại Receive Connector + gán chứng chỉ đúng.

Sau khi fix, luôn test lại bằng OpenSSL hoặc công cụ kiểm tra mail server để đảm bảo STARTTLS hoạt động chuẩn.

Tác giả SSL
TÁC GIẢ: Staff

Tác giả chưa cập nhật thông tin

Xem thêm

Bài viết liên quan


Sản phẩm liên quan


Secure Site Pro with EV

Secure Site Pro with EV DES

Ngày đăng 16 / 05 / 2020

1 năm:

62.029.000vnđ

2 năm:

32.640.000vnđ
Xem chi tiết

True Business ID with EV Multi - Domain

Ngày đăng 16 / 05 / 2020

1 năm:

13.500.000vnđ

2 năm:

7.800.000vnđ
Xem chi tiết

RapidSSL Wildcard

RapidSSL Wildcard

Ngày đăng 16 / 05 / 2020

1 năm:

4.500.000vnđ

2 năm:

2.800.000vnđ
Xem chi tiết

RapidSSL

Ngày đăng 16 / 05 / 2020

1 năm:

500.000vnđ

2 năm:

300.000vnđ
Xem chi tiết
Kinh doanh: 0977503750
Hỗ trợ kỹ thuật: 0559800766
Skype
Viber
Zalo