전체 글 104

TLS handshaking1.2/1.3, SNI, wireshark Capture 권한 부여 방법

1. TLS 1.2/1.3 HandShaking 과정아래 페이지에서 TLS 1.2/1.3 HandShaking 하는 과정을 자세히 살펴볼 수 있습니다.1.1. TLS 1.2 HandShaking 과정https://tls12.xargs.org/ The Illustrated TLS 1.2 ConnectionEvery byte of a TLS connection explained and reproducedtls12.xargs.org 1.2. TLS 1.3 HandShaking 과정https://tls13.xargs.org/ The Illustrated TLS 1.3 ConnectionEvery byte of a TLS connection explained and reproducedtls13.xargs.org ..

Study/Network 2024.12.13

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" 또..

[DevOps] IaC(Infrastructure as Code) - Terraform 구성요소

AWS Korea Hero인 '송주영' 님의 처음 시작하는 Infrastructure as Code: AWS & 테라폼 인프런 강의를 참고하여, 내용 정리 및 실습을 진행해본 내용이다.IaC 도구로 Hashicorp에서 만든 Terraform을 가장 많이 사용하므로, 여기서는 IaC 도구로 Terraform을 사용해보았다.IaC(코드로써의 인프라)는 더이상 선택이 아니라 필수이다..!!IaC(Infrastructure as Code)에 대한 간단한 개념IaC는 인프라 구성요소들을 코드를 통해 구축하는것이다.따라서, 코드로써의 장점을 가진다. 즉 작성용이성, 재사용성, 유지보수 등의 장점을 가진다.Terraform 구성요소