모든 배포 가이드 배포

이메일 서버용 SSL/TLS (Postfix, Dovecot, Exchange)

웹사이트를 보호하는 것과 동일한 Let’s Encrypt 인증서로 이메일 연결도 암호화할 수 있습니다. 이 가이드에서는 가장 일반적인 이메일 서버에 TLS를 설정하는 방법을 다룹니다.

이메일에 TLS가 필요한 이유

TLS 없이는 이메일 트래픽(비밀번호와 메시지 내용 포함)이 평문으로 전송됩니다:

  • SMTP (메일 발송) — 기본적으로 포트 25/587 암호화 없음
  • IMAP (메일 읽기) — 기본적으로 포트 143 암호화 없음
  • POP3 (메일 읽기) — 기본적으로 포트 110 암호화 없음

TLS는 HTTPS가 웹 트래픽을 암호화하는 것과 동일한 방식으로 이러한 연결을 암호화합니다. 최신 이메일 클라이언트는 TLS를 기대하며 암호화되지 않은 연결에 대해 사용자에게 경고합니다.

인증서 설정

GetHTTPS동일한 인증서 파일을 웹 서버와 이메일 서버 모두에 사용할 수 있습니다 — 인증서가 이메일 서버가 사용하는 호스트명(예: mail.example.com)을 포함하는 한.

메일 호스트명을 포함하는 인증서 발급:

  1. GetHTTPS에서 mail.example.com(또는 MX 레코드가 가리키는 호스트명)을 추가합니다
  2. 웹 도메인과 함께 포함할 수 있습니다: example.com + www.example.com + mail.example.com
  3. 파일을 다운로드합니다: fullchain.pem, privkey.pem

Postfix (SMTP)

/etc/postfix/main.cf를 편집합니다:

# TLS for outbound mail (sending)
smtp_tls_security_level = may
smtp_tls_loglevel = 1

# TLS for inbound mail (receiving) — STARTTLS on port 25/587
smtpd_tls_cert_file = /etc/ssl/gethttps/fullchain.pem
smtpd_tls_key_file = /etc/ssl/gethttps/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_loglevel = 1

submission(포트 587)의 경우 /etc/postfix/master.cf를 편집합니다:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes

리로드: sudo systemctl reload postfix

Dovecot (IMAP/POP3)

/etc/dovecot/conf.d/10-ssl.conf를 편집합니다:

ssl = required
ssl_cert = </etc/ssl/gethttps/fullchain.pem
ssl_key = </etc/ssl/gethttps/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = no

파일 경로 앞의 <에 주의하세요 — Dovecot은 이 구문을 사용하여 파일 내용을 인라인으로 읽습니다.

리로드: sudo systemctl reload dovecot

IMAP/POP3 포트

서비스비암호화STARTTLS묵시적 TLS (권장)
IMAP143143 (업그레이드)993
POP3110110 (업그레이드)995
SMTP submission587587 (업그레이드)465 (smtps)

최신 이메일 클라이언트는 묵시적 TLS 포트(993, 995, 465)에 연결해야 합니다. STARTTLS 포트와 함께 Dovecot과 Postfix에서 이 포트들을 설정하세요.

이메일 TLS 확인

# Test SMTP STARTTLS
openssl s_client -connect mail.example.com:587 -starttls smtp

# Test IMAP implicit TLS
openssl s_client -connect mail.example.com:993

# Test SMTP implicit TLS (smtps)
openssl s_client -connect mail.example.com:465

Verify return code: 0 (ok)와 인증서 세부 정보를 확인하세요.

갱신

Let’s Encrypt 인증서를 갱신할 때 파일을 교체하고 웹 서버와 이메일 서버를 모두 리로드합니다:

sudo systemctl reload nginx      # web
sudo systemctl reload postfix    # SMTP
sudo systemctl reload dovecot    # IMAP

Certbot을 --deploy-hook과 함께 사용하는 경우 훅 스크립트에 이메일 서버 리로드를 추가하세요.

자주 묻는 질문

웹과 이메일에 동일한 인증서를 사용할 수 있나요?

네 — 인증서의 SAN(Subject Alternative Name)에 이메일 서버의 호스트명이 포함되어 있으면 됩니다. MX가 mail.example.com을 가리키는 경우, 인증서 요청 시 해당 이름을 포함하세요.

Let’s Encrypt가 이메일 서버에서도 작동하나요?

네. Let’s Encrypt 인증서는 TLS를 지원하는 모든 서비스에 사용할 수 있는 표준 X.509 인증서입니다 — 웹 서버 전용이 아닙니다. 인증서는 HTTPS, SMTP, IMAP 또는 다른 어떤 용도로 사용되는지 알지 못합니다.

이메일 프로토콜마다 별도의 인증서가 필요한가요?

아니요. 하나의 인증서로 SMTP(Postfix), IMAP(Dovecot), 웹 서버를 동시에 사용할 수 있습니다. 모든 서비스가 동일한 fullchain.pemprivkey.pem을 가리키면 됩니다.

Microsoft Exchange는 어떻게 하나요?

Exchange는 PFX/PKCS#12 형식을 사용합니다. PEM 파일을 PFX로 변환한 후 Exchange 관리 센터 → 서버 → 인증서 → 가져오기에서 가져옵니다. IIS 인증서 설치와 유사한 과정입니다.

관련 기사

시작하기 2026-05-08
무료 SSL 인증서 받는 방법 (단계별 가이드)
5분 만에 Let's Encrypt에서 무료 SSL 인증서를 발급받으세요 - 소프트웨어 설치 불필요, 계정 생성 불필요. 4가지 방법, 두 가지 챌린지 유형, 6개 플랫폼 설치, 문제 해결을 포함하는 완전 가이드입니다.
배포 2026-05-08
Nginx에 SSL 인증서를 설치하는 방법
Nginx에 SSL 인증서를 설치하는 단계별 가이드. 파일 업로드, 전체 서버 블록 설정, TLS 모범 사례, HTTP/2, HSTS, 리다이렉트 설정, 테스트, 6가지 일반 오류 문제 해결을 다룹니다.
SSL 및 인증서 2026-05-07
SSL 인증서 형식: PEM, PFX, DER 설명
PEM, PFX/PKCS#12, DER 인증서 형식을 이해하세요. 서버에 필요한 형식과 OpenSSL을 사용하여 형식 간 변환하는 방법을 알아보세요.
브라우저에서 무료 SSL 인증서 받기
설치 불필요, 계정 불필요. 개인키는 항상 기기에 남습니다.
인증서 발급