반응형

Development Logs 98

[Spring Boot] Logging Pattern - 연도 설정시 주의할 점 (YYYY vs yyyy)

Logging Pattern 에서 YYYY로 연도 설정시 문제가 있던 것을 발견하고 yyyy로 수정한 내용에 대한 글입니다.1. 문제 확인우리 서비스의 prerpod/stage/prod 로그는 Sumologic과 연동되어있는데, Sumologic에서 로그 찍힌것을 2024-12-30에 로그를 확인해보니, 2025-12-30로 찍혀있음을 확인하였습니다.1.1. log4j2-local.xml(log4j2-cloud.xml) 최초 설정 확인PatternLayout - pattern의 날짜 부분을 살펴보면, %d{YYYY-MM-dd HH:mm:ss.SSS XX} 로 설정되어있었습니다.보안상 log4j2-local.xml로 공유 1.2. 재현테스트코..

[Spring Boot + GW] Log4j2 활용하여 Logging 설정하기(feat. Logback vs Log4j2 선택)

https://yubh1017.tistory.com/95 [Spring Boot] Spring Boot에서의 Logging Pattern 설정Spring Boot에서의 Logging Pattern 설정을 위해 Log와 관련된 간단한 지식을 정리한 글입니다.Logging Pattern 설정과 관련된 내용입니다.1. Logback이란?Java에서 Log 기록을 위한 Open-Source framework.  SLF4J의 구현yubh1017.tistory.com위에서는 Logback을 이용한 Logging Pattern 설정하는 법에 대해 설명을 했었습니다.이번에는 Log4j2를 활용하여 Logging Pattern을 설정하는 방법에 대해 알아보겠습니다. 기본적인 로깅 설정들은 Logback 활용한 방식과 유..

HTTP를 제공하는 서버인데 HTTPS로 호출하는 경우(SSL/TLS 관련 에러 발생) (feat. error:0A00010B:SSL routines::wrong version number)

더보기Netty Http Client로 HTTP를 제공하는 서버에 HTTPS로 호출된 케이스가 있었는데, 이때 발생했던 에러에 대해 더 자세히 살펴보겠습니다.1. 에러 발생not an SSL/TLS record: 485454502f312e3120343030200d0a5472616e736665722d456e636f64696e673a206368756e6b65640d0a446174653a204672692c203239204e6f7620323032342030333a31313a353820474d540d0a436f6e6e656374696f6e3a20636c6f73650d0a0d0a300d0a0d0a 2. 에러 분석16진수(Hexadecimal)로 인코딩된 데이터485454502f312e3120343030200d0a5..

Java Security Property 수정

더보기Java17 버전의 amazon-corretto-17.jdk 를 사용하고 있었는데, Java Security Property 중 jdk.tls.disabledAlgorithms 를 확인해보면, 기본적으로 TLSv1.2 하위의 암호화 알고리즘을 disabledAlgorithms 에 포함되어있습니다. 따라서 Java 버전이나 JDK 에 따라 TLS 버전에 대한 암호화 알고리즘 지원을 위해 수동으로 활성화하는 과정이 필요하며, 아래에서 2가지 방법을 제시하고 있습니다.Case1. java.security 파일 직접 수정하는 방법(로컬에서 사용 가능)Case1은 직접 배포 때마다 java.security를 수정하는 거는 번거러우므로, 로컬 또는 서버에서 직접 java.security 수정이 가능할 때 사용..

[Spring GW] Netty Http Client에 Java System Property 적용 및 JVM Option 사용이 안되는 이유

요약 설명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/T..

개발시 참고하면 좋을만한 사이트

분류사이트설명Springhttps://cloud.spring.io/spring-cloud-commons/reference/html/index.htmlspring cloud common 공식문서Springhttps://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-starterspring cloud gateway 공식 문서Springhttps://www.baeldung.com/Spring 관련 설명 및 예제maven/gradlehttps://mvnrepository.com/maven, gradle 등에서 어떤 라이브러리 버전을 많이쓰고 있는지 알수 있음Javahttps://system-properties.com/Java S..

Development Logs 2024.11.24

[Spring GW] Netty HttpClient TLS버전 추가 설정 기능 테스트 (TLSv1만 연결가능한 서버 구현하기)

2024.11.17 - [Development Logs] - [Spring GW] Netty HttpClient TLS 버전 추가 설정 [Spring GW] Netty HttpClient TLS 버전 추가 설정더보기Java17 버전을 이용해, Spring Cloud GW로 내재화 개발을 진행하다가, Provider서버 중 TLSv1 Protocol 만 연결 가능한 케이스가 있어 문제가 발생하였고, 이를 해결하기위해 쓴 글입니다. JVM의 HTTPS 설yubh1017.tistory.com위와 연결되는 글입니다.더보기Spring Cloud GW로 내재화 개발을 진행하다가 아래의 테스트 History 과정을 겪고 TLSv1만 연결가능한 로컬 서버를 구현하여, Spring GW의 테스트코드로 확인한 과정에 대한..

[Spring GW] Netty HttpClient SSL/TLS Custom 설정하기

2024.11.17 - [Development Logs] - [Spring GW] Netty HttpClient TLS 버전 추가 설정 [Spring GW] Netty HttpClient TLS 버전 추가 설정더보기Java17 버전을 이용해, Spring Cloud GW로 내재화 개발을 진행하다가, Provider서버 중 TLSv1 Protocol 만 연결 가능한 케이스가 있어 문제가 발생하였고, 이를 해결하기위해 쓴 글입니다. JVM의 HTTPS 설yubh1017.tistory.com위의 글과 연결된 글입니다.더보기Spring Cloud GW로 내재화 개발을 진행하다가, The server selected protocol version TLS10 is not accepted by client prefe..

[Spring GW] 하위 TLS 버전을 제공하는 Provider 서버 지원 기능

더보기Java17 버전을 이용해, Spring Cloud GW로 내재화 개발을 진행하다가, Provider서버 중 TLSv1 Protocol 만 연결 가능한 케이스가 있어 문제가 발생하였고, 이를 해결하기위해 쓴 글입니다. Netty Http Client(Default)를 사용하는 Spring Cloud Gateway에서 아래 에러가 발생하였습니다.The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]  에러 이유🚫 TLS HandShake 과정에서 Provider 서버에서는 TLSv1만 제공하는데 이를 요청하는 Gateway에서는 Netty Http Client는 기본값이 TLSv1.2..

[Spring Boot] Spring Boot에서 Actuator 설정

Spring Boot Actuator 설정을 위해 필요한 지식을 정리한 글입니다. 1. Spring Boot Actuator란?Spring Boot Actuator는 Spring Boot 기반의 애플리케이션에서 모니터링 및 관리를 위한 기능을 제공하는 라이브러리와 모듈의 집합입니다.Spring Boot Actuator는 애플리케이션을 운영 및 모니터링하기 위한 API를 제공하고, HTTP 또는 JMX를 통해 엔드포인트를 노출시켜 중요한 정보를 조회하고 수정할 수 있도록 합니다. 2. Spring Boot Actuator 주요 기능 및 엔드포인트/actuator/health: 애플리케이션의 건강 상태를 확인합니다. 이 엔드포인트는 애플리케이션의 상태를 간단하게 확인할 수 있습니다. 예를 들어, "UP" 또..

반응형