하나의 IP에 Postfix, 다중 도메인 및 다중 인증서

하나의 IP에 Postfix, 다중 도메인 및 다중 인증서

나는 다중 도메인을 가진 postfix 서버를 가지고 있고 각 도메인마다 특정 인증서를 갖고 싶습니다. 내 서버에는 IP가 하나만 있습니다.

다중 IP가 있는 솔루션을 찾았지만 이 작업을 수행하는 방법을 모르겠습니다.

  • 서버 : 데비안 9
  • 접미사 : 3.1.8

답변1

내가 아는 한 postfix에는 작동하는 SNI가 없습니다. 아직. 문서(http://www.postfix.org/TLS_README.html)는 "Postfix SMTP 서버에 SNI를 구현할 계획이 없습니다"라고 말합니다. 그러나 Victor는 1월에 postfix 3.4에 SNI 지원을 추가하고 싶다고 언급했습니다. 대안:

  • 다중 IP
  • 모든 도메인 이름이 포함된 인증서입니다.

또한 모든 도메인에 대해 동일한 MX를 사용하는 데 아무런 문제가 없습니다. MX 호스트 이름은 서비스 도메인 등입니다. 또한 helo/ehlo 이름은 동일/유사한 호스트 이름으로 구성됩니다. GoogleApps와 기타 주요 이메일 제공업체에 좋은 일이라면 우리에게도 좋은 일입니다.

답변2

Postfix >=3.4를 사용하는 경우 아래의 다음 단계를 조정된 대로 고려하세요.이 링크에서:

1 단계: 맨 위 두 줄을 주석 처리하고 /etc/postfix/main.cf에 다음 줄을 추가합니다.

    # smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
    # smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
    
    # provide the primary certificate for the server, to be used for outgoing connections (note the indentation)
    smtpd_tls_chain_files =
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem,
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    
    # provide the map to be used when SNI support is enabled
    tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map

2 단계: 다음을 사용하여 /etc/postfix/vmail_ssl.map 파일을 생성합니다.

    # Compile with postmap -F hash:/etc/postfix/vmail_ssl.map when updating
    # One host per line
    mail.yourprimarymailserverdomain.com /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    mail.yoursecondarymailserverdomain.com /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/fullchain.pem
    # add more domains with keys and certs as needed

3단계: 달리다 postmap -F hash:/etc/postfix/vmail_ssl.map.

4단계: 달리다 systemctl restart postfix.

5단계: 이제 도메인의 SSL을 테스트해 보세요! 각 도메인에 대해 다음 명령을 실행합니다.openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp

답변3

모르는 사람들을 위해 설명하자면, postmap -F파일을 가져오는 기본 테이블이 생성되므로 인증서가 변경될 때마다 SNI 테이블을 다시 작성해야 합니다.콘텐츠(파일 이름에 대한 참조만 저장하는 것은 아닙니다).

postmap -F hash:/etc/postfix/tls_server_sni_maps.map

답변4

Postfix 버전 3.4는 이제 SNI를 지원하므로 예를 들어 Ubuntu 19.10에서 사용할 수 있습니다.

또한 이를 원하는 데에는 타당한 이유가 있습니다. Outlook과 같은 클라이언트는 이메일 도메인 이름과 일치하는 서버 이름을 사용하여 자동 구성을 시도합니다. 메일 계정이 Gmail이나 다른 공유 도메인에 있는 경우에는 문제가 되지 않지만 여러 도메인이 있는 서버(VPS 포함)에서 호스팅되는 개인 도메인에는 이와 같은 솔루션이 필요합니다.

관련 정보