본문 바로가기
Linux

[Etc] keytool, OpenSSL, Tomcat 사용 SSL 설정

by jn4624 2021. 11. 26.
반응형

1. 사전준비

 

2. keytool 생성 및 SSL 적용 순서

CMD창에서 아래와 같이 명령어를 실행합니다.

 

a. keystore파일 생성

keytool -genkey -alias tomcat -keyalg RSA -keypass [키 비밀번호] -storepass [스토어 비밀번호]
-keystore C:/OpenSSL/bin/.keystore -dname "CN=127.0.0.1, OU=OrgUnit, O=MyCompany, C=KR"

위 명령어에서 가장 중요한 사항은 CN(Common Name) 부분인데 사용할 서버의 ip나 도메인과 꼭 일치해야 합니다.

 

 

b. CSR파일 생성

keytool -certreq -keyalg RSA -alias tomcat -keystore C:/OpenSSL/bin/.keystore
-file "C:/OpenSSL/bin/certreq.csr"

별칭은 keystore 파일 생성 별칭과 동일하게 작성해줍니다.

다운로드 받은 OpenSSL를 실행해 아래와 같이 명령어를 실행합니다(경로: OpenSSL/bin/openssl.exe).

 

 

c. CA인증키 생성

genrsa -aes256 -out ca.key 1024

 

d. Self-Signed CA인증서 생성

req -new -x509 -days 365 -key ca.key -out ca.crt

 

e. 인증서 발급

x509 -req -CA ca.crt -CAkey ca.key -days 365 -in "C:/OpenSSL/bin/certreq.csr"
-out certreq.crt -set_serial 01

다시 CMD창에서 아래와 같이 명령어를 실행합니다.

 

 

f. 키 리스트 등록

keytool -importcert -alias root -trustcacerts -keystore C:/OpenSSL/bin/.keystore
-file "C:/OpenSSL/bin/ca.crt"

위 명령어를 실행하면 인증서를 신뢰하냐는 문구가 나오는데 y를 입력하면 됩니다.

keytool -importcert -alias tomcat -trustcacerts -keystore C:/OpenSSL/bin/.keystore
-file "C:/OpenSSL/bin/certreq.crt"

위와 같이 명령어를 실행하면 키가 저장소에 저장되게 되고 저장되어 있는 키 리스트를 확인하는 방법은 아래와 같습니다.

keytool -list -v -keystore C:/OpenSSL/bin/.keystore

위와 같이 명령어를 입력하고 키 저장소 비밀번호를 입력하면 저장한 인증키 리스트가 출력됩니다.

 

 

3. 참고사항

키 리스트를 삭제하는 방법은

keytool -delete -alias root -keystore C:/OpenSSL/bin/.keystore
keytool -delete -alias tomcat -keystore C:/OpenSSL/bin/.keystore

인증서리스트를 저장할 때 부여했던 alias를 각 입력하여 리스트를 삭제하면 됩니다.

 

4. Tomcat 설정방법

conf/server.xml에 아래와 같이 설정하면 된다.

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="ture"
keystoreFile="C:/OpenSSL/bin/.keystore" keystorePass="스토어 비밀번호"
clientAuth="false" sslProtocol="TLS" />

위와 같이 설정하면 https://127.0.0.1:8443 으로 SSL 통신이 가능하다.

 

 

🙏 참조 ::

반응형