요약 설명
System.setProperty("https.protocols", "TLSv1"); 설정이 Netty의 HttpClient에 영향을 미치지 않는 이유는, Netty의 HttpClient는 JVM의 기본 HTTPS 설정을 사용하지 않고, 자체적으로 SSL/TLS 연결을 구성하기 때문입니다.
Java의 표준 HttpsURLConnection과 달리, **Netty는 SslContext**를 사용하여 SSL/TLS 설정을 명시적으로 관리합니다. JVM의 https.protocols 설정은 Java의 표준 HTTPS 클라이언트와 라이브러리들에서 사용하는 기본 프로토콜을 설정할 뿐, Netty의 HttpClient는 이 설정을 읽지 않고 별도의 TLS 설정을 사용합니다.
상세 설명
1. 독립적인 SSL/TLS 설정:
- Netty는 SslContext를 통해 SSL/TLS를 설정하며, 이는 JVM의 글로벌 설정과는 독립적입니다.
- Netty의 SslContext는 SSL/TLS 프로토콜, 암호화 스위트, 신뢰할 수 있는 인증서 등을 직접 설정할 수 있는 유연성을 제공합니다.
2. 고성능 및 비동기 지원:
- Netty는 비동기 네트워크 라이브러리로, 고성능과 유연성을 위해 독립적인 SSL/TLS 설정을 사용하며, TLS 프로토콜과 암호화 방식을 선택적으로 구성할 수 있습니다.
- SSL/TLS 설정을 더 낮은 레벨에서 관리하기 때문에 표준 JVM 속성에 의존하지 않습니다.
3. JVM 설정의 적용 범위 한정:
- https.protocols는 Java의 HttpsURLConnection, Apache HttpClient 등 일반적으로 JVM의 기본 SSL/TLS 설정을 사용하는 라이브러리에만 적용됩니다.
- Netty처럼 기본 설정을 무시하고 자체 SSL/TLS 설정을 사용하는 라이브러리에는 영향을 미치지 않습니다.
결론
- Netty의 HttpClient에서 TLSv1을 사용하도록 하려면, JVM 속성 대신 SslContext를 통해 Netty의 TLS 설정을 명시적으로 지정해야 합니다. Netty는 이러한 독립적인 설정 방식을 통해 더 세부적인 SSL/TLS 제어를 가능하게 합니다.
'Development Logs > Spring Ecosystem' 카테고리의 다른 글
Java Security Property 수정 (0) | 2024.12.01 |
---|---|
[Spring GW] Netty HttpClient TLS버전 추가 설정 기능 테스트 (TLSv1만 연결가능한 서버 구현하기) (0) | 2024.11.17 |
[Spring GW] Netty HttpClient SSL/TLS Custom 설정하기 (1) | 2024.11.17 |
[Spring GW] 하위 TLS 버전을 제공하는 Provider 서버 지원 기능 (1) | 2024.11.17 |
[Spring Boot] Spring Boot에서 Actuator 설정 (2) | 2024.11.03 |