2016-08-18 5 views
1

Mailkit을 통해 .NetCore/Ubuntu 컴퓨터에서 SMTP 서버에 연결하려고합니다.예기치 않은 "원격 인증서가 유효성 검사 절차에 따라 유효하지 않습니다."

SSL이 꺼진 상태에서 서버의 포트 25에 연결을 시도하고 있습니다.

메일 서버는 로컬 LAN의 Windows 서버이며 문제가있는 Ubuntu 컴퓨터에서 사용되는 것과 동일한 설정으로 다른 컴퓨터에서 정상적으로 작동합니다. 아래와 같이 코드를 연결하기 위해 사용되는

은 :

  using (var client = new SmtpClient()) 
      { 
       client.Connect("smtp.mydomain.com", 25,false); 
       client.Authenticate(username, password); 
       client.Send(emailMessage); 
       client.Disconnect(true); 
      } 

그러나,이 에러 메시지 와 .Connect 라인 직후 예외를 발생 "원격 인증서는 검증 절차에 따라 무효이다. "

내가 인증서를 모든 바닐라 포트에서 25

사람이 어떤 아이디어가 무엇인지에 대한 것입니다 가지고에 참여하는 것을 놀랜다?

답변

2

서버에서 SMTP의 일부로 TLS를 사용하고있는 것 같습니다. 이것은 꽤 흔한 STARTTLS 동사입니다.

다른 Windows 상자에서 작동하는 경우 AD를 사용하고 있습니까? 그렇다면 AD 발급 인증서에 CA가있어 그룹 정책을 통해 자동으로 신뢰됩니다. 그래서 configure OpenSSL on your Ubuntu machine to trust that CA도 필요합니다.

또는 당신이 그것을 섹스, 그리고

client.EnableSsl = true; 
+0

답장을 보내 주셔서 감사합니다. 나는 이것을 해결하기 위해 SecureSocketOptions.None을 전달할 수 있었다. Connect() 메서드에 대한 세 번째 매개 변수로 사용됩니다. – Hughgo

0

당신은 포트 25에서 SSL 인증서를 볼 이유와 보안을 무시 StmpClient에게 말할 단지 수는 서버가에서 STARTTLS를 제공하는 이유에 기인한다 포트. 당신은 OpenSSL을 통해 here을 언급 한 바와 같이 다음과 같은 방법으로 사용할 수 있습니다 사용되는 SSL 인증서를 확인하려면 :

하려면 openssl s_client가 -connect exchange01.int.contoso.com:25 -starttls SMTP

그것은 수도 여기에 사용 된이 SSL 인증서가 자체 서명되어 있으면 신뢰할 수있는 인증서로 대체하거나 (가능한 경우) 자체 서명 된 인증서를 신뢰할 수 있습니다.

관련 문제