인증서 발급, 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!!

 

복사했습니다!