Linux에서 SMTP 서버를 사용하여 오류 없이 메일을 보내는 방법

Linux에서 SMTP 서버를 사용하여 오류 없이 메일을 보내는 방법

SMTP 서버를 통해 메일을 보내려고 합니다. /etc/mail.rc파일을 설정합니다 .

set bsdcompat
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set [email protected]
set smtp-auth-password=password
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

이제 메일을 보낼 수 있지만 다음과 같은 오류가 발생합니다.

Error in certificate: Peer's certificate issuer is not recognized.

내 nssdb에 다음 항목이 있습니다.

certutil -L -d /etc/pki/nssdb

Certificate Nickname Trust Attributes 
                     SSL,S/MIME,JAR/XPI

누구든지 이 문제를 해결하는 방법을 제안할 수 있나요? Google에서 검색했지만 올바른 해결책을 얻지 못했습니다.

답변1

출력 에 따르면 certutil -L -d /etc/pki/nssdbnssdb가 비어 있습니다!

openssl s_client -showcerts -connect smtp.gmail.com:465 </dev/null메일 서버 인증서의 공개 부분과 그것이 제공할 수 있는 발급자 인증서를 덤프할 수 있습니다 . 출력 내용은 상당히 길지만 먼저 다음 줄에 주의해야 합니다.

Server certificate
subject=/C=US/ST=California/L=Mountain View/O=Google LLC/CN=smtp.gmail.com
issuer=/C=US/O=Google Trust Services/CN=Google Internet Authority G3

그리고

Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google LLC/CN=smtp.gmail.com
   i:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
[...]
 1 s:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
   i:/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign

따라서 서버(서버 인증서 섹션과 해당 섹션의 인증서인 경우 subject=)에는 "Google Internet Authority G3"에서 발급한 인증서가 있습니다. 차례로 인증서를 받았습니다.0Certificate chainsmtp.gmail.comGlobalSign Root CA - R2

"globalsign root ca R2"라는 키워드를 Google에서 빠르게 검색하면 이 인증서가 2021년에 만료되는 상당히 오래된 인증서임을 알 수 있습니다. 믿으시면 다운받으시면 됩니다여기...하지만 웹 브라우저에 내장된 표준 인증서 저장소에서 "Google Internet Authority G3" 인증서 사본을 내보내는 것이 더 나은 생각일 것입니다.

어떤 인증서를 선택하든 파일에 있으면 바로 사용할 수 있습니다 certutil -A -d /etc/pki/nssdb -i <certificate file>. (인증서를 PEM 형식으로 내보내는 경우 이 옵션을 추가할 수 있습니다 -a.)

답변2

로컬 시스템에 인증서가 누락된 것 같습니다. 끝났어서버 장애같은 질문에 대한 답변입니다.

bash의 smtp.gmail.com에 "인증서 오류: 피어의 인증서 발급자가 인식되지 않습니다"가 표시됩니다.

관련 정보