Jks 인증서 등록 - Jks injeungseo deunglog

tomcat에 인증서를 등록하여 https로 서버를 동작하게 설정하는 방법을 포스팅하겠습니다.

tomcat 버젼은 8.5.46 입니다.

인증서에는 종류가 많지만 저는 pem, jks 파일을 기준으로 하겠습니다.

인증서가 pem파일인 경우, jks로 변환해야 합니다.

pem파일인 경우, 1번부터 따라하시면 되고, jks파일일 경우, 4번부터 따라하시면 됩니다.

pem 파일명은 test.pem입니다. 비밀번호는 test1234를 사용하였습니다.

1. openssl 명령어를 사용하여 pem을 pkcs12 포맷으로 변환

]# openssl pkcs12 -export -out test.p12 -in test.pem

Enter Export Password:
Verifying - Enter Export Password:

->test.p12 생성 완료

]# cat test.p12
0  0   *
      *
  0 0   *
  0 
*

       0]  ;7  +a  8IC(6Cz2YȠ 3   %[2[R]Iă_g4d>S#I yGP uyNj^臘3V m$\3
0&   X^;C9                                                         K[pwad׳e02ek
c 3%KU/; 8n!4Xa)V6& & S5_ܦG(*NC+^ _n=Q%- t)

-> p12 파일을 출력하니 깨져서 나옵니다.

2. keytool을 이용하여 pkcs12를 jks 포맷으로 변환

]# keytool -importkeystore -srckeystore test.p12 -srcstoretype pkcs12 -destkeystore test.jks -deststoretype jks

키 저장소 test.p12을(를) test.jks(으)로 임포트하는 중...
대상 키 저장소 비밀번호 입력:  
새 비밀번호 다시 입력: 
소스 키 저장소 비밀번호 입력:  
te1 별칭에 대한 항목이 성공적으로 임포트되었습니다.
임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.

Warning:
JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore test.jks -destkeystore test.jks -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.

->test.jks 파일 생성 완료

#cat test.jks

    

1 x
{# $ iM ` +   Y+'_+9+L;dű+JY-F-Ć+} H ~NIڳ -=}&7 ƃ5NO [c9CS C!"3D
  P4 K U*H
  W5<HfZO"L}&-# /. S[:^#<yY  :4eQz?Ӎ F,y|<:;WG`1_# Dc%팔1G3B !-ۇ L' A. X   T>QRU=7% :@!V~ 8Xa ]+ L7{M@LIz

-> jks파일 또한 깨져서 나옵니다.

3. jks파일 확인

]# keytool -list -keystore test.jks

키 저장소 비밀번호 입력:  
키 저장소 유형: jks
키 저장소 제공자: SUN

키 저장소에 1개의 항목이 포함되어 있습니다.

1, 2021. 3. 30, PrivateKeyEntry, 
인증서 지문(SHA1): F9:36:C3:05:D6:ED:D0:0C:E5:58:9F:26:06:E5:CB:3A:F3:36:7E:98

Warning:
JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore test.jks -destkeystore test.jks -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.

-> 정상 확인 완료

4. tomcat 설정 변경

]# vim server.xml

...

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"

               

scheme="https" clientAuth="false" sslProtocol="TLS"
               keystoreFile="/test/test.jks" keystorePass="test1234"
               />
...

5. tomcat 재기동 후, 웹브라우저에 https로 접속

https://IP

Jks 인증서 등록 - Jks injeungseo deunglog

->위 그림과 같이 인증서가 보이는 것을 확인할 수 있습니다.

tomcat을 사용하여 암호화 통신인 ssl 방식을 스터디하던 중 jks란 용어를 알게되었습니다.

오늘은 jks에 대해 알아보겠습니다.

JKS ( Java Key Store )는 보안 인증서의 인증서 또는 공개키 인증서 저장소 중의 하나입니다.

SSL암호화인 개인 키의 인스턴스에서 사용합니다.

이름처럼 자바언어에서 사용합니다.

IBM 서버와 오라클 서버에서는 JKS 확장자를 가진 파일이 키 스토어 역할을 합니다.

키스토어 파일에 대한 생성/조작 등을 하기 위해서 keytool 도구를 사용합니다.

keytool은 keystore 기반의 인증서와 키를 관리할 수 있는 도구입니다.

keytool은 키 저장소에서는 개인 키를 추출할 수 없지만, 다른 도구를 사용하여 추출이 가능합니다.

인증서 생성
]# keytool -genkey -alias tomcat -keyalg RSA -keypass password  -storepass password -keystore test.jks

인증서 추출
]# keytool -export -alias tomcat -storepass password -file test.cer -keystore test.jks

인증서 임포트
]#  keytool -import -v -trustcacerts -alias tomcat -file test.cer -keystore cacert.jks -keypass password -storepass password

인증서 삭제
]# keytool -delete -alias tomcat -keystore test.jks -storepass password