サーバーから電子メールを送信しようとしています。私のローカルコンピュータではテストはうまくいきますが、本番Ubuntuサーバーでは電子メールを送信しようとするとWebサーバーが失敗します。
私はGmailをSMTPプロバイダとして使用していますが、問題は本番サーバーがGoogle SMTPサーバーへのアクセスを許可していないようです。
次のコマンドは、マイコンピュータでは正常な接続を確立しますが、サーバーでは失敗します。
$ openssl s_client -crlf -connect smtp.gmail.com:465
connect: Connection refused
connect:errno=111
iptables
ポートが閉じる場合に備えて、さまざまな組み合わせを試してみました。また、無効なファイアウォールを試してみましたufw disable
。どちらも私に成功をもたらすことができませんでした。
修正する:
telnet smtp.gmail.com 465
出力:
Trying 74.125.143.108...
Trying 74.125.143.109...
Trying 2a00:1450:4010:c04::6c...
telnet: Unable to connect to remote host: Network is unreachable
openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:465
私にしてください:
connect: Connection refused
connect:errno=111
追加iptables-save
出力:
# Generated by iptables-save v1.4.12 on Thu Aug 21 13:06:19 2014
*mangle
:PREROUTING ACCEPT [16698:11267219]
:INPUT ACCEPT [16698:11267219]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13015:16282858]
:POSTROUTING ACCEPT [13015:16282858]
COMMIT
# Completed on Thu Aug 21 13:06:19 2014
# Generated by iptables-save v1.4.12 on Thu Aug 21 13:06:19 2014
*nat
:PREROUTING ACCEPT [1421:163021]
:INPUT ACCEPT [678:92411]
:OUTPUT ACCEPT [1339:83461]
:POSTROUTING ACCEPT [1339:83461]
COMMIT
# Completed on Thu Aug 21 13:06:19 2014
# Generated by iptables-save v1.4.12 on Thu Aug 21 13:06:19 2014
*filter
:INPUT ACCEPT [9933:3116585]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [12536:16243622]
-A INPUT -i lo -j ACCEPT
COMMIT
# Completed on Thu Aug 21 13:06:19 2014
ベストアンサー1
IIRC、openssl s_client -connect localhostはデフォルトでTLSを使用します。
~からhttps://www.openssl.org/docs/apps/s_client.html:
-ssl2、-ssl3、-tls1、-no_ssl2、-no_ssl3、-no_tls1
これらのオプションは、特定のSSLまたはTLSプロトコルを無効にします。デフォルトでは、初期ハンドシェイクに使用される方法はすべてのサーバーと互換性があり、SSL v3、SSL v2、またはTLSを適切に使用できるようにする必要があります。
残念ながら、この技術を処理できず、接続できない古くて故障したサーバーが多用されています。一部のサーバーは-no_tlsオプションを使用してTLSをオフにした場合にのみ機能し、他のサーバーはSSL v2のみをサポートし、-ssl2オプションが必要になる場合があります。
次のいずれかのオプションを使用する必要があります。