web-dev-qa-db-ja.com

Spring-bootでTLS 1.2を有効にするにはどうすればよいですか?

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は現在サポートされているようです。 どのバージョンがスプリングブートで実行されているかを正確に確認する方法がわかりません。

13
mattm

TLS 1.2は、spring-boot 1.2.1でデフォルトで有効になっています。これは、コマンドラインから次を実行することで確認できます

openssl s_client -connect serverAddress:port

どの出力

SSL-Session:
Protocol  : TLSv1.2
Cipher    : ECDHE-RSA-AES256-SHA384

したがって、私の問題は別のものでなければなりません。

9
mattm

スプリングブートに含まれるデフォルトの暗号化により、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

17
Dot Batch