Postfix 및 SSL을 사용하는 가상 도메인


21

여러 가상 도메인을 호스팅하기위한 Postfix 메일 서버 설정이 있습니다 (예 : xxx.comyyy.com).

사용자는 발신 메일 서버를 mail.xxx.com및 로 구성합니다 mail.yyy.com. 모든 메일 서버는 동일한 물리적 Postfix 서버 (이 Linux 서버에서 실행되는 동일한 IP, 단일 Postfix 인스턴스)를 참조합니다.

Postfix smtpd_tls_cert_file구성 옵션에 어떤 SSL 인증서가 필요 합니까?

아니면 단일 인증서를 사용해야하고 mail.xxx.com사용자 에게 발신 서버 yyy.com로 사용하도록 지시해야 mail.xxx.com합니까? 이것은 별도의 가상 서버의 환상을 깨뜨릴 것입니다.

[참고 : 도메인은 완전히 분리되어 있습니다. 공통 루트를 공유하는 여러 하위 도메인이 아닙니다].

답변:


10

또는 mail.xxx.com에 단일 인증서를 사용해야하고 yyy.com 사용자에게 mail.xxx.com을 발신 서버로 사용하도록 지시해야합니까?

그렇습니다. 결국 여러 가지 CommonName또는 SubjAltName속성이 있는 인증서를 사용해야 합니다.

Postfix가 클라이언트가 요청한 호스트 이름을 알 수있는 방법은 없습니다. Host요청 된 도메인을 나타내는 HTTP / 1.1 헤더와 Postfix는 아직 SNI를 지원하지 않습니다 .

메일 서버에 대해 두 개의 다른 도메인을 사용하는 것에 의존하는 경우 smtpd두 개의 개별 네트워크 인터페이스 / IP 주소에서 두 개의 인스턴스를 실행해야 합니다. 일반적으로 "중립"도메인을 선택하고 사용자에게이 도메인을 사용하도록 지시합니다.


19

실제로 ... 각 도메인에서 유효한 SSL 인증서를 사용하려면 다중 도메인 인증서를 사용하거나 고유 한 IP에서 각 도메인을 설정하는 두 가지 솔루션이 있습니다. 첫 번째 해결책은 끔찍합니다.이 인증서는 일반적으로 상당히 비쌉니다 (저렴한 것을 찾을 수는 있지만) 동일한 인증서에서 인증하려는 모든 도메인을 나열하며 가장 중요한 것은 한 번만 발급되므로 추가하는 것입니다. 단 하나의 새로운 도메인은 완전히 새로운 인증서를 얻는 것을 의미합니다.

더 나은 솔루션은 각 도메인을 고유 한 IP에 배치 한 다음 각 인증서를 해당 IP에 일치시키는 것입니다.

postfix에서 수행하는 방법은 다음과 같습니다.

먼저 각 도메인에 대한 인증서를 / etc / postfix / 디렉토리에 배치합니다 ( / etc / postfix / ssl / 디렉토리를 작성할 수도 있습니다 ). 참고 : .pem 인증서 파일을 사용하는 Plesk를 사용하지만 .key 및 .cer 파일 (.pem 파일은 순서대로 .key 및 .cer 파일의 연결입니다)

그런 다음 / etc / postfix / 에서 master.cf 파일 을 수정해야합니다.

원래, 내 모습은 다음과 같습니다 (아마도 서버를 설정 한 후 마지막 3 개의 IP를 추가했기 때문에).

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

smtp inet n - n - - smtpd
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticate d,reject -o smtpd_sender_restrictions=

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

이제 각 인증서를 해당 IP에 바인딩하려면 다음과 같이하십시오.

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

#smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
#submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions=

1.1.1.1:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem

2.2.2.2:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem

3.3.3.3:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem

4.4.4.4:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem

5.5.5.5:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem

그게 다야 !! (위와 같이 원래 줄을 주석 처리하는 것을 잊지 마십시오)

추신 : courier-imap을 사용하는 경우 POP / IMAP에 대해서도 동일한 작업을 수행하려면 해당 .pem 파일의 사본을 / usr / share / courier-imap /에 저장 하거나 Plesk의 경우 / usr에 배치하면됩니다. / share / ) 이름을 다음과 같이 지정하십시오. imapd.pem.xx.xx.xx.xx pop3d.pem.xx.xx.xx.xx

여기서 xx.xx.xx.xx는 각각의 IP 주소입니다 (2 개의 인증서는 동일한 파일의 사본입니다).

이것이 도움이되기를 바랍니다!


시간을내어 자세한 답변을 작성해 주셔서 감사합니다. 앞으로 누군가에게 도움이 될 것입니다.
nimrodm

2
그게 희망입니다! 이것을 하나로 모으는 데 시간이 조금 걸렸으며 , 누군가를 추측하거나 실제로 효과 가있을 수있는 해결책이 아니라 실제로 효과 가있는 솔루션을 찾는 일은 드물었습니다 .
Peter

1
이제 letsencrypt를 사용하여 첫 번째 방법으로 이동할 수 있습니다. 당신은 무료로 멀티 도메인 인증서가있을 수 있습니다
balping
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.