Spring SSL Invalid keystore format Error

song yuheon·2024년 5월 8일
0

Trouble Shooting

목록 보기
57/57

문제 상황

Spring 프로젝트에서 소켓 IO 서버 설정과 Tomcat 서버의 SSL/TLS 구성에 문제가 발생했습니다.
Java KeyStore(.jks)을 사용하여 Spring 프로젝트와 Tomcat 서버에서 SSL 구성을 시도했습니다. 초기 설정에서는 default.propertiesserver.xml 둘다 Java KeyStore 파일을 사용했습니다.
그러나, 이러한 설정이 올바르게 동작하지 않아 서비스에 테스트 당시 SSL 인증서 관련 오류가 발생했습니다.

문제의 원인 파악

  1. 기술 스택의 이해 부족: 초기에는 Java 기반의 설정과 Apache Portable Runtime(APR)의 차이를 충분히 이해하지 못했습니다. Java는 .jks 형식을 사용하는 반면, APR은 OpenSSL의 .crt.key 형식을 요구합니다.

  2. 서버 로그 분석: server.xml의 로그 파일을 검토하여 Connector attribute SSLCertificateFile must be defined when using SSL with APR라는 오류 메시지를 확인했습니다.
    이는 APR 기반의 설정에서 필요한 SSL 인증서 파일이 정의되지 않았음을 나타냈습니다.

  3. 설정 파일 검토: default.propertiesserver.xml 파일의 SSL 관련 설정을 자세히 검토했습니다.
    이 과정에서 .jks.crt, .key 파일 사용 방식의 차이점을 명확히 이해할 필요가 있었습니다.

문제 해결 과정

  1. 기술 문서 연구: Java와 APR의 SSL 구성 방법에 대해 공식 문서와 커뮤니티 포럼을 통해 추가적인 정보를 수집했습니다.
    이를 통해 각 기술의 SSL 설정 방식을 더 깊이 이해할 수 있었습니다.

  2. 환경별 설정 분리: Spring 프로젝트의 default.properties에서는 .jks 형식을 계속 사용하기로 결정했습니다.
    이 파일은 Java의 내장된 보안 기능과 호환되기 때문입니다.
    반면, Tomcat의 server.xml에서는 .crt.key 파일을 사용하여 OpenSSL 방식으로 APR과 호환되도록 설정을 수정했습니다.

  3. 설정 변경 및 테스트: 변경된 설정을 적용한 후, 개발 환경에서 여러 가지 테스트를 수행하여 SSL/TLS 설정이 올바르게 동작하는지 확인했습니다.
    이 과정에서 HTTPS를 통한 서비스 접속 테스트와, SSL 인증서 오류가 발생하지 않는지를 철저히 검토했습니다.

profile
backend_Devloper

0개의 댓글