ArchLinuxでPostfixサーバーをセットアップしている最中です。これまでのところ問題なく動作しているようです。telnet localhost 25
を介して正常に話すことができます。ただし、opensslのs_client
を使用して接続しようとすると、次のように文句が表示されます。
$ openssl s_client -connect localhost:25
CONNECTED(00000003)
140243743024808:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:766:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 228 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
ステータス1で終了します。
/etc/postfix/main.cf
の関連部分:
smtpd_tls_key_file = /path/to/server.key.pem
smtpd_tls_cert_file = /path/to/server.crt.pem
smtpd_tls_CAfile = /path/to/ca.pem
smtpd_tls_security_level = may
また、非pem形式のキーと証明書を持っており、それらを使用する別のサービス(xmppサーバー)で正常に動作しています。
documentation これを実現するには、/etc/postfix/main.cf
の行のコメントを解除し、25ではなくポート587を使用する必要があると言っています。これにより、openssl s_client
と同じようになります。上記。
PostfixにTLSを使用するように説得するにはどうすればよいですか?
ポート587はアプリケーションプロトコルに依存しないため、tlsに使用する必要はありません。
openssl s_client -connect localhost:25
からあなたとまったく同じ結果が得られますが、tlsは私のサーバーで正しく機能しています。
現在、個人用Wikiにアクセスできないため、正しいコマンドを貼り付けて、システムのTLS構成を確認できませんでした。ただし、 CheckTLS を使用できます。
[〜#〜] starttls [〜#〜] について読むことをお勧めします。つまり、暗号化されていないプレーンテキスト接続を開始し、後でTLSにアップグレードします。 openssl
コマンドはこれを使用せず、SSL/TLSハンドシェイクを直接実行したいと考えています。
MTAの「一般的な」事実上の構成は、STARTTLSをポート587で、プレーンSSL/TLSを465で、STARTTLSオプションをポート25で使用できないように構成することです。これは、私が知る限り、標準ではありません。サービスプロバイダーはそれをしているようです。