인증서 발급, certbot 설치, crontab설치는 생략함.(구글링 하면 많이 나와서...)
Let’s Encrypt 인증서를 발급 받으면
cert.pem
chain.pem
fullchain.pem
이렇게 세개 파일이 나오는데, 이걸 바로 톰켓에 적용은 할 수 없고 pkcs12형식인 .p12 파일로 변경을 해줘야 하는데,
두가지 방법이 있다.
첫번째)
각 파일별로 변경을 하는 방법.
openssl rsa -in privkey.pem -text > gizmo80.key
openssl x509 -inform PEM -in fullchain.pem -out gizmo80.crt
openssl pkcs12 -export -in gizmo80.crt -inkey gizmo80.key -out gizmo80.p12 -name tomcat
위처럼
privkey.pem -> gizmo80.key
fullchain.pem -> gizmo80.crt
gizmo80.crt -> gizmo80.p12
이렇게 3단계를 거쳐서 마지막 gizmo80.p12 파일을 톰켓에 적용 하는 방법이다.
두번째)
privkey.pem, fullchain.pem 파일을 이용해서 한번에 .p12 파일을 변환 하는 방법.
openssl pkcs12 -export -inkey privkey.pem -in fullchain.pem -out gizmo80.p12 -name tomcat
이렇게 한번에 하는 방법이다.
하지만 이렇게 두가지의 방법을 가지고 crontab에 적용을 할 수 없다. 이유는
.p12 파일을 만드는 과정에서 비밀번호를 입력 해야 하기 때문에, crontab을 이용해서 스케줄로 등록을 하게 되면, 중간에 비밀번호를 입력 할 수 없기 때문에다.
이때 openssl 명령어 옵션에 비밀번호를 지정을 할 수 있는 옵션이 있다.
-passout pass: 이 옵션을 추가 하게 되면 비밀번호를 미리 등록 할 수 있고 crontab에서도 비밀번호 없이 인증서를 갱신하고 tomcat에 적용 할수 있다.
예) openssl pkcs12 -export -inkey privkey.pem -in fullchain.pem -out gizmo80.p12 -name tomcat -passout pass:gizmo80!!