2016-08-18 4 views
1

Mailkit経由で.NetCore/UbuntuマシンからSMTPサーバーに接続しようとしています。予期しない「検証手順に従ってリモート証明書が無効です。」

SSLをオフにしてサーバーのポート25に接続しようとしています。

メールサーバはローカルLAN上のWindowsサーバで、問題のあるUbuntuマシンで使用されているのと同じ設定で他のマシンから正常に動作します。

接続するために使用されているコードは以下の通りである:ただし、これは直ちにリモート証明書が検証手順に従って無効なエラーメッセージ 」と.Connect行の後に例外をスロー

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

。 "

私は、証明書がバニラポートに25

は、誰もが何が起こっているか任意のアイデアを持っているすべてに関与していることに驚いていますか?

答えて

2

サーバーはおそらくSMTPの一部としてTLSを有効にしています。これはかなり一般的です、それはSTARTTLS動詞です。

これが他のWindowsのボックスで動作する場合は、ADにいますか?その場合は、おそらく、グループポリシーで自動的に信頼されるAD発行証明書にCAが存在します。だからconfigure OpenSSL on your Ubuntu machine to trust that CAも必要です。

またはあなたはそれをファック、そしてあなたがポート25でSSL証明書を参照してください理由は、サーバがその上のSTARTTLSを提供していることの理由による

client.EnableSsl = true; 
+0

ご返信ありがとうございます。私はSecureSocketOptions.Noneを渡すことでこれを回避することができました。 Connect()メソッドの3番目のパラメータとして使用します。 – Hughgo

0

でセキュリティを無視するStmpClientを言うだけ言うことができますポート。あなたは、OpenSSLを経由してhereを述べたように、以下の方法で使用することができます使用されているSSL証明書を見つけるために:

opensslのs_client -connect exchange01.int.contoso.com:25 -starttls SMTP

それは可能性がありますここで使用されているこのSSL証明書が自己署名されている場合は、信頼できる認証証明書(可能であれば)に置き換えるか、自己署名証明書を信頼することができます。

関連する問題