Sangil's blog

https://github.com/ChoiSangIl Admin

Spring Boot 무료 Https 인증서(SSL) 발급하기 (letsencrypt) DEV / SERVER

2020-03-15 posted by sang12


이번에 블로그에 https를 적용하면서 letsencrtpt를 이용하여 스프링부트와 CentOs 환경에서 인증서를 발급받는 방법을 알아 보겠습니다. 
저는 https://github.com/certbot/certbot 깃허브 페이지에서 해당 소스를 clone해서 받아오는 방법을 이용하여 발급하였습니다.

yum install -y git 
git clone https://github.com/letsencrypt/letsencrypt
 

깃으로 해당 소스를 받아왔다면 아래와 같이 자신의 이메일과 도메인 주소를 입력합니다. 루트 계정이 아니면 암호를 물어봅니다. 저는 루트 계정으로 진행했습니다.

./certbot-auto certonly --manual --email sang12@kakao.com -d test.co.kr

그리고 개인정보 아이피등이 활용될수있다는 것에 동의를 해주면 하나의 토큰값을 발급해줍니다.

해당 토큰값을 저의 사이트(test.co.kr/.well-known/~)에 인증을 해야 최종적으로 인증서가 발급됩니다. (putty로 서버에 붙어서 사용하는데 저 값을 복사할려고 컨트롤 c를 누를때마다 저 창이 꺼져서...부들부들했습니다 오른쪽마우스 키를 눌러도...동일... 그래서 저는 putty 상단창에서 오른쪽마우스 클릭하면 클립보드로 전체복사키가 있는데요 그걸 이용해서 복사해서 사용했습니다)

그럼 스프링부트에서 해당 위값이 나오게 수정을 해야하는데요. 아래와 같이 추가를 해줬습니다.

@RequestMapping(value = "/.well-known/acme-challenge/your tocken")
    @ResponseBody
    public String applyHttps(HttpServletResponse response) {
	return "your tocken";
    }

그리고 엔터를 눌러주면 /etc/letsencrypt/live/sang12.co.kr 해당 경로에 .pem 파일을 생성해주는데요 톰캣에서 인증서를 사용하기 위해서 아래와 같은 명령어를 사용해줍니다.  그럼 암호를 입력하라고 뜨는데 인증서에 사용할 암호를 입력합니다.

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name airpageserver -CAfile chain.pem -caname root

여기까지 SpringBoot에서 https를 인증서를 발급하는 방법을 알아보겠습니다. 이제 톰캣서버에 해당 인증서를 적용해봐야 겠네요.

2022.05.08 추가

토큰값을 스프링부트에서 만들어서 인증하는 방식보다는 잠깐 서비스를 내리고 인증하는 방법인 standalone 방식이 더 좋은거같습니다 ^^;

sudo apt update
sudo apt-get install  letsencrypt -y
certbot certonly --standalone -d sang12.co.kr
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name airpageserver -CAfile chain.pem -caname root


#Spring Boot https 무료 인증서 #Spring Boot 인증서 발급 #letsencrypt 인증서 발급 #centos letsencrypt 발급
REPLY