잡동사니
[keytool + OpenSSL + Tomcat] Window 환경에서 SSL 설정하기 본문
안녕하세요. 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을 통한 통신을 할 수 있습니다.
'IT > Web' 카테고리의 다른 글
시큐어코딩(Secure Coding) 교육 후기 (0) | 2022.01.29 |
---|---|
HTTP의 이해 (0) | 2020.02.05 |
[Javascript] window.onload '... is not defined' 원인 알아보기 (0) | 2017.03.29 |
[NodeJS] 익명 채팅서비스 (0) | 2016.01.31 |
[개발] 유지보수가 용이한 공통코드 관리 (2) | 2016.01.20 |