Let's Encrypt를 활용한 Glassfish Https 설정하기

들어가기

최근 봉사 활동을 하면서 관리하는 페이지의 인증서가 만료되어 수동으로 갱신을 해야했습니다. 자료를 찾아보니 아직은 많은 자료가 없는 것 같아 Let’s Encrypt를 활용한 Glassfish 인증서 수동 갱신 과정을 공유해볼까 합니다.

본론

Let’s Encrypt 설치

Let’s Encrypt가 설치가 안된 상태라면 먼저 Let’sEncrypt를 설치해야 합니다. 설치하는 과정은 많은 블로그에서 공유되고 있으므로 간략하게 클론하는 명령어만 적고 넘어가겠습니다.

git clone https://github.com/letsencrypt/letsencrypt

정상적으로 설치가 됐다면 확인을 해보겠습니다.

letsencrypt-auto --help

다음과 같이 출력된다면 정삭적으로 설치를 마친것 입니다.

Let’s Encrypt를 활용해 pem 파일 받아오기

이제 앞에서 설치한 Let’s Encrypt를 활용해 pem 파일을 받아오겠습니다.

letsencrypt-auto certonly

명령어를 치고 나면 환경에 맞게 서버를 인증 받아야합니다. 저같은 경우는 이전에 standalone으로 인증 받았기 때문에 똑같이 standalone으로 진행하겠습니다.

문제가 없다면 정상적으로 /etc/letsencrypt 아래 pem 파일이 갱신 또는 새롭게 받아온 것을 확인할 수 있습니다.

날짜를 보시면 pkcs.p12 파일은 이전에 만들어 놨던 인증서이므로 아직까지는 신경을 쓰지 않아도 됩니다.

발급된 pem 파일, 인증서로 변환하기

이제 받아온 pem 파일들을 인증서로 변환하여 Glassfish keystore에 넣어주면 인증서는 갱신 됩니다. pem 파일들을 인증서로 변환하기 위해서는 openssl을 사용해야합니다.

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out pkcs.p12 -name s1as

비밀번호는 별도의 설정을 하지 않았을 경우 changeit 입니다.

이 과정을 수행하면 다음과 같이 pkcs라는 파일이 생성됨을 확인 할 수 있습니다.

이제 생성된 pkcs 인증서를 keysore.jks에 넣어주기만 하면 인증서 갱신이 완료 됩니다.

keystore에 인증서 넣기

먼저 keystore에 기존에 있었던 만료된 인증서를 지워야 합니다. 만약 만료된 인증서가 없었다면 바로 pkcs 파일을 넣어 주시면 됩니다. 그럼 먼저 리스트를 확인하고 삭제 해보겠습니다.

keytool -list -keystore keystore.jks
keytool -delete -alias s1as -keystore keystore.jks

기본 비밀번호는 똑같이 changeit 입니다. 위의 명령어를 진행하면 keystore에 저정되 있던 만료된 인증서는 삭제가 됩니다.

자!! 그럼 이제 마지막으로 갱신한 인증서를 넣어 주겠습니다.

 cd /usr/local/glassfish4/glassfish/domains/domain1/config
 keytool -importkeystore -deststorepass {비밀번호} -destkeypass {비밀번호} -destkeystore keystore.jks -srckeystore /etc/letcencrypt/live/freemed.iptime.org/pkcs.p12 -srcstoretype PKCS12 -alias s1as

해당 환경은 저의 환경을 기준으로 Path가 설정되어 있으므로 참고하시고 각자의 설정된 Path로 진행하시면 됩니다.

마지막으로 확인보면 갱신된 인증서가 정상적으로 keystore에 추가됨을 확인할 수 있습니다.

이제 정말 마지막으로 서버만 껏다 키면 인증서가 적용됩니다.

https 통신이 정상적으로 작동되네요..!!

마치며

glassfish 서버 자체를 많이 쓰지는 않지만 유용한 정보였기를 바랍니다.

Share