Spring-boot 1.2.1のTomcatでTLS 1.2を有効にしようとしています。 Android 5.0は、SSLハンドシェイクの失敗により、デフォルトのSSL設定への接続に失敗します。Android 4.4、iOS、Firefox、およびChromeはすべてデフォルトバージョンに接続します。これは、Android 5.0とSpring Boot Tomcatのデフォルト(TLS v1?)でサポートされているTLSプロトコルの不一致によるものだと思います。
このapplication.properties設定を変更したいと思います。
server.ssl.protocol=TLS
しかし、私は他の受け入れ可能な文字列を見つけていません(もしあれば)。 spring boot github で「プロトコル」を検索しても見つけることができる列挙はありません。 「TLSv1.2」を試しましたが、これは効果がないようです。
Application.propertiesの現在のSSL構成は次のとおりです。
server.ssl.key-store = chainedcertificates.p12
server.ssl.key-store-password = secret
server.ssl.key-store-type = PKCS12
スプリングブートでTLS 1.2を有効にするにはどうすればよいですか?
問題があれば、私はJava 1.7を使用しています。このドキュメントは、TLS 1.2をサポートする必要があることを示しているようです。
Tomcat 8は現在サポートされているようです。 どのバージョンがスプリングブートで実行されているかを正確に確認する方法がわかりません。
TLS 1.2は、spring-boot 1.2.1でデフォルトで有効になっています。これは、コマンドラインから次を実行することで確認できます
openssl s_client -connect serverAddress:port
どの出力
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-SHA384
したがって、私の問題は別のものでなければなりません。
スプリングブートに含まれるデフォルトの暗号化により、SSLハンドシェイクエラーが発生する場合があります。一連の暗号を定義することをお勧めします。同様の問題がありました。修正方法は、呼び出し元で SSLScan を使用し、システムをスキャンして一致するものがあるかどうかを確認することでした。これにより、一致するものがないことがわかり、サポートする必要がある暗号のリストを定義するのに役立ちました。
SSLScan を使用すると、これらはスプリングブートが使用するデフォルトの暗号です。
Preferred TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256 Curve P-256 DHE 256
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA256 Curve P-256 DHE 256
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA Curve P-256 DHE 256
Accepted TLSv1.2 128 bits DHE-RSA-AES128-GCM-SHA256 DHE 1024 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-SHA256 DHE 1024 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-SHA DHE 1024 bits
TLS 1.2を有効にし、暗号リストを定義するには、次を実行してください。
#enable/diable https
server.ssl.enabled=true
#ssl ciphers
server.ssl.ciphers=TLS_RSA_WITH_AES_128_CBC_SHA256, INCLUDE_ANY_OTHER_ONES_YOU_NEED_TO_SUPPORT
# SSL protocol to use.
server.ssl.protocol=TLS
# Enabled SSL protocols.
server.ssl.enabled-protocols=TLSv1.2
暗号のリストについては、 https://testssl.sh/openssl-rfc.mapping.html および https://msdn.Microsoft.com/en-us/を使用できますlibrary/windows/desktop/mt813794(v = vs.85).aspx