web-dev-qa-db-ja.com

JavaMailSenderImplがTLS1.2を使用するように強制する方法は?

TomcatでJDK7アプリを実行していて、次の環境設定がある。

-Dhttps.protocols=TLSv1.1,TLSv1.2 

上記の設定により、API呼び出しなどを実行しながらHTTPS経由で接続するときにTLS 1.0を使用しないことが保証されます。

また、org.springframework.mail.javamail .JavaMailSenderImplクラスを使用して、送信SMTPメールを送信し、次の小道具を使用します。

 mail.smtp.auth=false;mail.smtp.socketFactory.port=2525;mail.smtp.socketFactory.fallback=true;mail.smtp.starttls.enable=true

問題は、SMTPメールサーバーへの接続がTLS1.2にアップグレードされたときに失敗することです。

javax.net.ssl.SSLHandshakeException:ハンドシェイク中にリモートホストが接続を閉じました

TLS1.2プロトコルを強制する設定またはコード変更はありますか?

私はいくつかの検索を行いましたが、これらの環境設定はアプレットとWebクライアント専用であり、サーバー側のアプリ用ではないようです

-Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false
8
Sunny

これは、次に見ている人のための修正です:

mail.smtp.starttls.enable = true; mail.smtp.ssl.protocols = TLSv1.2;

14
Sunny