SSL 그리고 jks에 관하여

SoHEeeeeee·2023년 12월 29일
0
post-thumbnail

회사 프로젝트 설정 파일 경로를 확인하던 중 'ssl 설정 파일 경로'를 보게 되었다.
ssl설정은 무엇일까?

해당 /tomcat8.5/conf/ssl/ 경로에는 jks 파일이 있었다.


🔐SSL

SSL(Secure Sockets Layer)은 인터넷에서 데이터 전송 시 정보를 암호화하여 안전한 통신을 제공하는 프로토콜로 쉽게 말하면 인터넷에서 정보를 보호해주는 방법이다.

웹사이트나 앱을 사용할 때, 개인 정보를 보내거나 받을 때가 많다. SSL은 이런 정보들을 보호해준다.
예를 들어, 로그인 정보나 결제 정보를 입력할 때, SSL은 이 정보를 잠그고 보호해준다.

SSL은 정보를 보내고 받는 과정에서 잠재적으로 정보가 훔쳐질 수 있는 것을 방지한다.
그래서 웹사이트 주소가 'https://'로 시작하는데 's'가 붙어있는 건 그 웹사이트가 SSL을 통해 보호된다는 것이다.


🗂️jks

그렇다면 조금 더 실무적으로 들어가서 jks는 무엇일까?

.jks 파일은 Java KeyStore의 약자로, Java 기반의 애플리케이션에서 사용되는 보안 인증서와 개인 키를 저장하는 데 사용되는 파일 형식이다.

파일에는 보안 토큰, 인증서, 비밀번호 등의 정보가 암호화되어 저장된다. 주로 공용 키 인증서와 해당 개인 키를 쌍으로 저장하여 안전하게 관리한다.

일반적으로 .jks 파일은 Java의 KeyStore 클래스를 사용하여 생성하고 관리할 수 있다. 이 파일 형식은 주로 Java 기반의 서버 애플리케이션에서 SSL 인증서 및 키를 관리하기 위해 사용되며, 이를 통해 안전한 통신을 제공할 수 있다.


🙋🏻‍♀️나의 경험

내가 ssl, jks를 실무에서 접했던 건 신규 ssl인증서 파일(jks)을 전달받아 업데이트 지시를 받은 것이었다.

웹과 API 모두 업데이트 해야했다.

교체는 생각보다 간단했다. FileZilla를 통해 해당 jks가 있는 경로로 이동하여 전달받은 파일로 갱신(업데이트/교체)해주면 끝이었다. 그리고 업데이트한 페이지로 이동하여 인증서 뷰어를 통해 최종확인했다.

회사 페이지는 캡쳐하기 애매하지만 당장 벨로그에서도 벨로그 SSL 인증서를 확인할 수 있다.


🚀코드에서 찾아보기

그리고 프로젝트 상에서는 application.yaml 파일에 설정되어 있는 것을 확인했다. (설정 정보를 포함하는 파일 형식)

  • Enabled Ciphers (활성화된 암호 방식):
    이 항목은 SSL/TLS 연결에서 사용할 수 있는 암호화 알고리즘을 지정한다. 암호화된 통신을 위해 사용되며, 예를 들어 AES, RSA, 등이 있다. 이 중에서 어떤 암호화 알고리즘을 사용할지 결정하는 옵션이다.

  • Key-store (키 저장소):
    SSL/TLS에서 사용하는 인증서와 개인 키를 보관하는 곳을 지정한다. 키 저장소에는 SSL 인증서와 해당 인증서와 연관된 개인 키가 포함되어 있다. => 파일 위치

  • Key-store password (키 저장소 암호):
    키 저장소에 접근하기 위한 암호를 설정한다. 키 저장소는 민감한 정보를 포함하고 있어 암호로 보호되어야 한다.

  • Enabled Protocols (활성화된 프로토콜):
    SSL/TLS 프로토콜 중에서 사용할 수 있는 프로토콜을 지정한다. 예를 들어 TLS 1.2, TLS 1.3 등이 있다.
    (*프로토콜 : 서버와 클라이언트 간 통신에 사용되는 규칙 세트)

  • Key-store type (키 저장소 유형):
    Java의 경우 .jks(Java KeyStore) 혹은 .p12/.pfx(PKCS#12) 등의 형식이 있다.

profile
주니어 개발자

0개의 댓글