본문 바로가기
NETWORK

Pkcs12 인증서 갱신

by meteorkim 2024. 5. 27.

인증서 갱신 방법

pkcs12 방식의 인증서는 스프링 프로젝트에서 api에 https를 적용하기 위해 사용되는 형식이다.
이 형식의 인증서를 생성하기 위해서는 유효한 certificate.pem, privkey.pem 생성이 필요하다.

에러 상황

- Swagger 문서에 ssl 이 적용되지 않아 https 접근이 불가능하다.
- 따라서 local 환경에서 테스트하는 프런트엔드 작업자가 서버 API에 접근이 불가능한 상황이다
- 또한 Spring Cors Error 문제도 발생한 상황이다.

발생 원인

- 프로젝트 yml 파일에서 ssl key를 사용하고 있는 상황인데 classpath:ssl/keystore.p12 파일이 만료되었다.

해결 방법

Certbot을 통해 인증서를 갱신해야 하는데 갱신할 인증서가 ec2 서버에 존재했다.
그걸 생각하지 못하고 내 로컬에서 새 인증서를 발급받아야 한다고 생각해서 허튼짓을 했다.

(새 인증서를 생성하기 위해서는 도메인의 80번 포트를 통해 발급받아야 하지만 현재 해당 도메인의 80번 포트는 가용 중인 상황이라 불가능했다.)

ec2 server에서
certbot renew —dry-run (인증서 갱신 테스트)
certbot renew (인증서 갱신)
certbot certificates (인증서 확인하기)

pem 파일이 있는 경로로 이동하여

openssl pkcs12 -export -inkey \[privkey\] -in \[certificate\] -out \[배출할키\]  
ex) openssl pkcs12 -export -inkey privkey.pem -in fullchain.pem -out keystore.p12  

or

서버 접속 후 sudo certbot --nginx -d \[도메인\]  
sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name ttp -CAfile chain.pem -caname root