source

스프링 부트 시 TLS 1.2를 활성화하려면 어떻게 해야 합니까?

gigabyte 2023. 2. 10. 22:00
반응형

스프링 부트 시 TLS 1.2를 활성화하려면 어떻게 해야 합니까?

Spring-boot 1.2.1의 Tomcat에서 TLS 1.2를 활성화하려고 합니다.SSL 핸드쉐이크 오류로 인해 Android 5.0이 기본 SSL 설정에 연결하지 못했습니다.Android 4.4, iOS, Firefox 및 Chrome은 모두 기본 버전에 연결합니다.Android 5.0에서 지원되는 TLS 프로토콜과 스프링 부트 Tomcat 기본값(TLS v1?)이 일치하지 않기 때문이라고 생각합니다.

이 application.properties 설정을 변경하고 싶습니다.

server.ssl.protocol=TLS

하지만 다른 허용 가능한 문자열은 찾지 못했습니다(혹은 있는 경우).spring boot github에서 protocol을 검색해도 열거형이 없습니다.「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은 지원 대상인 것 같습니다.스프링 부트에서 어떤 버전이 실행되고 있는지 정확히 확인하는 방법을 잘 모르겠습니다.

스프링 부팅에 포함된 기본 암호로 인해 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을 사용할 수 있습니다.

스프링 부트 1.2.1에서는, TLS 1.2 는 디폴트로 유효하게 되어 있습니다.이는 명령줄에서 다음을 실행하여 확인할 수 있습니다.

openssl s_client -connect serverAddress:port

출력되는 것

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

그래서 내 문제는 따로 있는 게 틀림없어.

언급URL : https://stackoverflow.com/questions/27989034/how-do-you-enable-tls-1-2-on-spring-boot

반응형