[Spring Boot] SSL과 443 port 설정하기
참조!
- 이 부분은 도메인과 IP가 localhost(127.0.0.1)가 아닐 때만 적용됩니다.
- localhost(127.0.0.1)일 때는 추후 포스팅 예정입니다.
SSL과 443포트를 적용하게 되었는데 443 포트가 계속 안 붙어서 슬퍼하다가
저랑 비슷한 상황이신 분들도 계실꺼 같아서 경험한 것을 토대로 포스팅합니다!
포스팅 내용 순서!
- 인증서 추출하기 - .p12
- 443 -> 8443 포트로 port forwarding하기!
- application.properties 설정하기
- https:URL 로 접근 성공!
포스팅 내용!
1. 인증서추출하기 - .p12
- keytool로 jks파일에서 pkcs12형태로 키 추출하기
(.jks 파일이 있다는 것을 기준으로 합니다)
1
2
3
|
keytool -importkeystore -srckeystore "aaa.aaaa.jks" -destkeystore "aaa.aaaa.p12" -deststoretype PKCS12
|
cs |
Error 참조! - 위 명령어 작성시, 아래와 같은 에러날시!
& keytool 오류: java.io.IOException: Keystore was tampered with, or password was incorrect
--> 답변: 추출한 .jks 파일의 비번과 동일하지 않아서 생기는 에러이니 같은 비밀번호로 지정하면 됩니다
잠깐! 간단 설명!
! jsk란?
--> SSL 암호화를 위해 쓰이는 key들을 모아놓은 파일이며, Client와 Server가 통신할 때 통신 내용을 안전하게 보호하는 방법으로 SSL(Secure Sockets Layer)이 있습니다.
! keytool란?
--> keytool은 keystore라는 일종의 DB를 관리하는 프로그램입니다.
2. 443 -> 8443 포트로 port forwarding하기!
1
2
3
4
|
sudo firewall-cmd --zone=public --add-forward-port=443:proto=tcp:toport=8443 --premanent
sudo firewall-cmd --reload
|
cs |
! 제가 사용하는 Ubuntu 18.04 운영체제는 firewalld가 설치되어 있어서 firewall을 사용해 포트포워딩했습니다.
3. application.properties설정하기
1
2
3
4
5
6
7
|
server.port=8443
security.require-ssl=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=Pkcs12파일
server.ssl.key-store-password=key-store비밀번호
|
cs |
-
https://proper.proper.com 으로 접근하면 성공!
만약 접속 안되시는 분들!!
! 만약 접속이 안된다면 아래와 같이 firewall 설정 부분을 확인하셔야 합니다!
1) 포트확인하기
! sudo ufw status
2) 방화벽 활성화시키기
! sudo ufw enable
3) 443포트 열기
! sudo ufw allow 443
! firewall 설정후 다시 https://도메인주소 로 접근하시면 됩니다!
T.M.I 시간!
! 포트포워딩 방식과 authbind를 이용한 방법중 무엇으로 설정할까.. 하다가 포트포워딩 방식을 채택했습니다.
(이건 그냥 궁금해하실까봐 ㅋㅋㅋ)
! 포스팅 보러오신 분들중, authbind 방식으로 하시려고 하시는 분들이 계실까봐 관련 주소를 첨부합니다~
주소: https://www.baeldung.com/tomcat-change-port