web-dev-qa-db-ja.com

PostfixTLS設定

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を使用するように説得するにはどうすればよいですか?

5
lvc

ポート587はアプリケーションプロトコルに依存しないため、tlsに使用する必要はありません。

openssl s_client -connect localhost:25からあなたとまったく同じ結果が得られますが、tlsは私のサーバーで正しく機能しています。

現在、個人用Wikiにアクセスできないため、正しいコマンドを貼り付けて、システムのTLS構成を確認できませんでした。ただし、 CheckTLS を使用できます。

3
teissler

[〜#〜] starttls [〜#〜] について読むことをお勧めします。つまり、暗号化されていないプレーンテキスト接続を開始し、後でTLSにアップグレードします。 opensslコマンドはこれを使用せず、SSL/TLSハンドシェイクを直接実行したいと考えています。

MTAの「一般的な」事実上の構成は、STARTTLSをポート587で、プレーンSSL/TLSを465で、STARTTLSオプションをポート25で使用できないように構成することです。これは、私が知る限り、標準ではありません。サービスプロバイダーはそれをしているようです。

2
gertvdijk