on
[Etc] keytool, OpenSSL, Tomcat 사용 SSL 설정
[Etc] keytool, OpenSSL, Tomcat 사용 SSL 설정
[사전준비]
1. JAVA JDK
2. window용 OpenSSL (다운로드 링크: http://slproweb.com/products/Win32OpenSSL.html)
CMD창에서 아래와 같이 명령어를 실행합니다.
[keystore파일 생성]
1 2 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" cs
위 명령어에서 가장 중요한 사항은 CN(Common Name) 부분인데 사용할 서버의 ip나 도메인과 꼭 일치해야 합니다.
[CSR파일 생성]
1 2 keytool -c ertreq - keyalg RSA - alias tomcat - keystore C:/OpenSSL/bin/.keystore - file "C:/OpenSSL/bin/certreq.csr" Colored by Color Scripter cs
별칭은 keystore 파일 생성 별칭과 동일하게 작성해줍니다.
다운로드 받은 OpenSSL를 실행해 아래와 같이 명령어를 실행합니다(경로: OpenSSL/bin/openssl.exe).
[CA인증키 생성]
1 genrsa - aes256 - out ca.key 1024 cs
[Self-Signed CA인증서 생성]
1 req - new - x509 - days 365 - key ca.key - out ca.crt cs
[인증서 발급]
1 x509 - req - CA ca.crt - CAkey ca.key - days 365 - in "C:/OpenSSL/bin/certreq.csr"
- out certreq.crt - set_serial 01 cs
다시 CMD창에서 아래와 같이 명령어를 실행합니다.
1 keytool - importcert - alias root - trustcacerts - keystore C: / OpenSSL / bin / .keystore
- file "C:/OpenSSL/bin/ca.crt" cs
위 명령어를 실행하면 인증서를 신뢰하냐는 문구가 나오는데 y를 입력하면 됩니다.
1 keytool - importcert - alias tomcat - trustcacerts - keystore C: / OpenSSL / bin / .keystore
- file "C:/OpenSSL/bin/certreq.crt" cs
위와 같이 명령어를 실행하면 키가 저장소에 저장되게 되고 저장되어 있는 키 리스트를 확인하는 방법은 아래와 같습니다.
1 keytool - list - v - keystore C: / OpenSSL / bin / .keystore cs
위와 같이 명령어를 입력하고 키 저장소 비밀번호를 입력하면 저장한 인증키 리스트가 출력됩니다.
[참고사항]
키 리스트를 삭제하는 방법은
1 keytool - delete - alias root - keystore C: / OpenSSL / bin / .keystore cs 1 keytool - delete - alias tomcat - keystore C: / OpenSSL / bin / .keystore cs
인증서리스트를 저장할 때 부여했던 alias를 각 입력하여 리스트를 삭제하면 됩니다.
[Tomcat 설정방법]
conf/server.xml에 아래와 같이 설정하면 된다.
1 2 3 4 < 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" / > cs
위와 같이 설정하면 https://127.0.0.1:8443 으로 SSL 통신이 가능하다.
==== 참조 ====
1. https://yeti.tistory.com/91
2. https://m.blog.naver.com/blackpencil/220618789600
3. https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId;=toy_ssl&logNo;=110168927395
from http://jinalim-dev.tistory.com/39 by ccl(A) rewrite - 2021-11-26 20:27:56