
저는 지난 15년 동안 postfix를 실행하면서 mail.myserver.com
메일을 성공적으로 보내고 받았습니다. 모든 인증서는 Let's Encrypt를 사용하여 완전히 유효합니다. openssl s_client -connect mail.myserver.com:25 -starttls smtp
포트 465에서 SSL에 대한 STARTTLS 및 유사한 테스트를 검증하는 데 사용하여 문제가 없는지 확인할 수 있습니다 .
나는 이것이 새로운 설정이 아니라는 것을 확인하기 위해 이 단 하나의 인스턴스를 제외하고 모든 것이 올바르게 설정되고 원활하게 실행되는 것으로 보입니다.
이 모든 것을 감안할 때 특정 공급업체(제 의료 서비스 제공자!)로부터 이메일을 받을 수 없다는 사실을 알게 되었습니다. postfix 로그를 살펴보면 다음과 같은 줄이 보입니다.
postfix/smtpd[2016]: connect from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
postfix/smtpd[2016]: SSL_accept error from mail1.static.mydoctor.com[xxx.xx.xx.xxx]: 0
postfix/smtpd[2016]: warning: TLS library problem: 2016:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:s3_pkt.c:1493:SSL alert number 42:
postfix/smtpd[2016]: lost connection after STARTTLS from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
postfix/smtpd[2016]: disconnect from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
mail1.static.mydoctor.com
이는 메일 서버가 STARTTLS를 통해 내 서버에 연결을 시도했지만 mail.myserver.com
잘못된 인증서를 제공하여 내 postfix가 연결을 거부했음을 알려줍니다 . 내 해석이 틀렸다면 알려주세요!
발신자가 잘못한 경우에도 특정 이메일을 꼭 받아야 합니다. 이 경우 어떤 종류의 해결 방법이 효과가 있을까요? 어쨌든 잘못된 인증서를 허용하기 위해 인증서 검사를 완화할 수 있는 방법이 있습니까? 아니면 특정 원격 서버가 보내는 모든 것을 허용하도록 화이트리스트에 추가할 수도 있나요? 다른 것?
답변1
... sslv3 alert bad certificate:s3_pkt.c:1493:SSL alert number 42:
이것은 mail1.static.mydoctor.com 메일 서버가 STARTTLS를 통해 내 mail.myserver.com에 연결을 시도하지만 잘못된 인증서를 제공하므로 내 postfix가 연결을 거부한다는 것을 알려줍니다.
이것은 잘못된 해석입니다. 로그에 있는 "잘못된 인증서 경고"는 보낸 MTA가 인증서를 확인할 수 없기 때문에 서버가 보낸 MTA로부터 이 경고를 받았음을 의미합니다. 즉, 발신자가 잘못된 인증서를 제공하는 것이 아니라 서버가 발신자가 수락하지 않는 인증서를 제공하는 것입니다.
보낸 사람 MTA가 인증서를 확인할 수 없는 이유가 확실하지 않습니다. 귀하의 설정 문제이거나 보낸 사람의 설정 문제일 수 있습니다.