본문 바로가기

Java/Spring

[SSL] Spring Boot를 이용해 HTTPS 연동하기 (개인 서명)

HTTPS 연동을 위해선 우선 keystore를 만들어야한다. - JDK의 bin으로 이동하여 아래 명령어를 입력한다.
C:\Program Files\Java\jdk1.8.0_45\bin> 
keytool -genkey -alias [키저장소별칭] -keyalg RSA -keystore [키저장할파일이름]
예) keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks
저장소를 만들 때 비밀번호는 기억해두자. 나머지 부분은 편하게 만들어보자. 마지막엔 y를 입력한다. (혹은 yes) 참고 링크 - http://crishantha.com/wp/?p=445 - http://zero-gravity.tistory.com/199 위 명령어를 수행하면 keystore가 생성된다. 저장소 내용 확인 방법
C:\Program Files\Java\jdk1.8.0_45\bin> 
keytool -list -v -keystore [금방저장한파일이름]
예) keytool -list -v -keystore keystore.jks
keystore에 포함된 인증서를 추출해본다.
C:\Program Files\Java\jdk1.8.0_45\bin> 
keytool -export -alias [만들었던저장소별칭] -keystore [저장소이름] -rfc -file [추출할인증서파일이름]
예) keytool -export -alias tomcat -keystore keystore.jks -rfc -file server.cer
인증서도 한번 보자
cat server.cer (윈도우라면 type server.cer)
trust-store를 만들자
keytool -import -alias [저장소별칭] -file [인증서] -keystore [trust저장소로만들파일이름]
오라클 링크 : https://docs.oracle.com/cd/E19509-01/820-3503/ggfen/index.html 추가 링크 : https://www.lesstif.com/pages/viewpage.action?pageId=20775436

SpringBoot

1. 프로퍼티 파일을 수정하기

application.properties의 파일을 수정한다

server.port=8443
# 키 저장소 경로
server.ssl.key-store=C:/Program Files/Java/jdk1.8.0_45/bin/keystore.jks
# 키 저장소 
server.ssl.key-store-password=설정했던비밀번호
# alias에 맞는 비번
server.ssl.key-password=설정했던비밀번호
server.ssl.key-alias=설정했던별칭

server.ssl.trust-store=C:/Program Files/Java/jdk1.8.0_45/bin/cacerts.jks
server.ssl.trust-store-password=설정했던비밀번호
1-2. 프로퍼티가 아닌 자바로 설정하는 방법도 있습니다. - 링크 : http://stackoverflow.com/questions/19613562/how-can-i-specify-my-keystore-file-with-spring-boot-and-tomcat

https로 접근해보기



- 공식 기관에서 인증받은 서명이 아니기 때문에 크롬/IE 등의 브라우저에서 붉은색으로 경고를 알려줍니다.
- 뭐.. 저 스스로 서명한거니 계속 진행하기를 클릭하면 됩니다.
- https가 붉은 색이지만 연동이 정상적으로 된 것을 확인할 수 있습니다.




- p.s 크롬 UI가 바뀐것도 모르고 HTTPS 연동 오류인줄 알았는데.. ㅠㅠ, 최하단 버튼에 숨겨놓았을 줄은..