잡동사니

[keytool + OpenSSL + Tomcat] Window 환경에서 SSL 설정하기 본문

IT/Web

[keytool + OpenSSL + Tomcat] Window 환경에서 SSL 설정하기

yeTi 2017. 3. 31. 17:11

안녕하세요. yeTi입니다.

오늘은 Tomcat에서 keytool과 OpenSSL을 사용하여 SSL을 설정하는 방법에 대해서 알아보겠습니다.


사전 준비

 - JDK

 - Window용 OpenSSL (http://slproweb.com/products/Win32OpenSSL.html)


CMD 창에서 다음을 실행합니다.


- keystore 파일 생성

D:\dev\Java\x64\jdk1.8.0_101\bin> keytool -genkey -alias tomcat -keyalg RSA -keypass [키 비밀번호] -storepass [스토어 비밀번호] -keystore C:/OpenSSL-Win64/bin/.keystore -dname "CN=localhost, OU=OrgUnit, O=MyCompany, C=KR"


- CSR 파일 생성

D:\dev\Java\x64\jdk1.8.0_101\bin> keytool -certreq -keyalg RSA -alias tomcat -keystore C:/OpenSSL-Win64/bin/.keystore -file "C:/OpenSSL-Win64/bin/certreq.csr"


- CA 인증키 생성

C:\OpenSSL-Win64\bin> openssl genrsa -aes256 -out ca.key 1024


- Self-Signed CA 인증서 생성

C:\OpenSSL-Win64\bin> openssl req -new -x509 -days 365 -key ca.key -out ca.crt


- 인증서 발급

C:\OpenSSL-Win64\bin> openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in "C:/OpenSSL-Win64/bin/certreq.csr" -out certreq.crt -CAcreateSerial

x509: Unknown digest CAcreateSerial 오류시 대체
C:\OpenSSL-Win64\bin> openssl x509 -req -CA ca.crt -CAkey ca.key -days 365 -in "C:/OpenSSL-Win64/bin/certreq.csr" -out certreq.crt -set_serial 01


D:\dev\Java\x64\jdk1.8.0_101\bin> keytool -importcert -alias root -trustcacerts -keystore C:/OpenSSL-Win64/bin/.keystore -file "C:/OpenSSL-Win64/bin/ca.crt"
D:\dev\Java\x64\jdk1.8.0_101\bin> keytool -importcert -alias tomcat -keystore C:/OpenSSL-Win64/bin/.keystore -file "C:/OpenSSL-Win64/bin/certreq.crt"


그러면 C:/OpenSSL-Win64/bin에 있는 .keystore을 사용할 수 있습니다.


Tomcat의 server.xml에 SSL 설정을 추가합니다.

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


그러면 https://localhost:8443으로 접근하면 SSL을 통한 통신을 할 수 있습니다.

Comments