2016-09-01 2 views
3

스프링 부트 버전 1.4.0.RELEASE에서 TLSv1.0을 사용하지 않으려합니다. 스프링 부트가 포함 된 임베디드 부두 버전 9.2.13.v20150730을 사용하고 있습니다.임베디드 부두가있는 v 1.4.0의 TLSv1.0 사용 안 함 v 9.2.13

스프링 부트 속성으로는 가능하지 않다고 생각합니다. 나는 다음을 시도했지만 TLSv1은 여전히 ​​사용 가능합니다.

server.ssl.protocol TLS 
server.ssl.enabled-protocols TLSv1.1,TLSv1.2 

그래서 스프링 부트 자동 구성 코드를 확인했습니다. Jetty 용 SSLContext가 초기화되는 방법은 다음과 같습니다.

다음 configureSsl 메소드에서 factory.setExcludeProtocols 메소드 호출이 없습니다. SslContextFactory에는 setExcludeProtocols 메소드가 있습니다.

봄 부팅시 server.ssl.disabled-protocols 속성을 추가 할 수 있습니까? 또는 이미 TLSv1.0을 비활성화 할 수 있다면 알려 주시기 바랍니다.

/** 
* Configure the SSL connection. 
* @param factory the Jetty {@link SslContextFactory}. 
* @param ssl the ssl details. 
*/ 
protected void configureSsl(SslContextFactory factory, Ssl ssl) { 
    factory.setProtocol(ssl.getProtocol()); 
    configureSslClientAuth(factory, ssl); 
    configureSslPasswords(factory, ssl); 
    factory.setCertAlias(ssl.getKeyAlias()); 
    if (!ObjectUtils.isEmpty(ssl.getCiphers())) { 
     factory.setIncludeCipherSuites(ssl.getCiphers()); 
     factory.setExcludeCipherSuites(); 
    } 
    if (ssl.getEnabledProtocols() != null) { 
     factory.setIncludeProtocols(ssl.getEnabledProtocols()); 
    } 
    if (getSslStoreProvider() != null) { 
     try { 
      factory.setKeyStore(getSslStoreProvider().getKeyStore()); 
      factory.setTrustStore(getSslStoreProvider().getTrustStore()); 
     } 
     catch (Exception ex) { 
      throw new IllegalStateException("Unable to set SSL store", ex); 
     } 
    } 
    else { 
     configureSslKeyStore(factory, ssl); 
     configureSslTrustStore(factory, ssl); 
    } 
} 

답변

1

내가 발견 한 방법은 TLSv1.2에서만 지원되는 암호를 설정하는 것입니다. 예 : 당신은 application.yml

server.ssl.ciphers:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 

에 넣어 그리고 당신은 거부/무시됩니다 해당 요청을 볼 수

openssl s_client -connect example.com:443 -tls1 

은 Using CURL 경우 때문에 당신이 application.yml 설정, 암호 TLSv1.2 요청 만 유효성을 검사합니다.

관련 문제