postfixでサーバ間通信を暗号化(SSL)にしようとしていろいろハマった話
Gmailへメールを送信すると暗号化されていないという事で赤いマークがつくので、それを何とかしたいという要望があり、解決するにはSSL(暗号化)にてメールをGmailに送る必要があります。
なので、普通にサーバ間通信のSSL化という事で下記の項目の設定をpostfixのmain.cfに実施する事とした。
smtp_tls_security_level = may
smtp_tls_CAfile = <CA File>
smtp_tls_cert_file = <サーバ証明書>
smtp_tls_key_file = <KEY File>
一応、SSL化は出来たが送信時ログに「Untrusted TLS connection」と記録されている。
これは一応暗号化はしてるが信頼できないと言ってる状態に。
中間証明書とかないのかと思ったが、実はこちらのメールサーバがSSLのクライアントとして相手サーバにSSL通信をしているので、各種OSに登録されている証明書関連が読めてないという事が判明
smtp_tls_CApath = /etc/ssl/certs
Ubuntu 22.04.3 でデフォルトで登録されている証明書の保存場所
上記設定した事でログ上も「Trusted TLS connection」となった。
ただ、また違う問題が発生した。ドコモへのメール送信が「TLS: handshake failure」となってメールキューに溜まってしまう状態になった。
ログには「TLS library problem: error:0A000152:SSL routines::unsafe legacy renegotiation disabled」とか記録されてる状態に。これが調べてもよくわからなくて・・・。
tls_ssl_options = legacy_server_connect
というのを設定することで解決。
情報を検索して調べたのもあるが、ログに記録されてる「legacy renegotiation」から、このキーワードを設定する項目がないか探した所、この設定にいきついた。
いろいろと問題が発生したが、何とか解決したので、一応情報として残しておくこととしました。
もし、設定をして同じような症状にあっている担当者に、この情報が少しでも役立つことを願っています。