스프링 프로젝트에 letsencrypt 인증서를 사용해보자 ( feat. pfx / PCKS12)
알아둘일
2024. 8. 6. 07:59
지난글에 이어 https://blog.1day1.org/711 스프링 프로젝트에 .pem 인증서를 사용해보자.
서버에 일반 랜딩페이지용은 nginx 로 사용하고, api 용 서버는 스프링 프로젝트로 구축되어 있다.
스프링프로젝트는 아래 형태로 세팅되어 있다. ( application-prd.properties )
server.contextPath=/myproject
server.address=0.0.0.0
server.port=8443
server.ssl.key-store=/myproject/ssl/myproject.com.pfx
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=1234567
해당 프로젝트는 내가 구축한 것은 아니고, 수년전 구축된 것을 인수받아 관리하고 있다.
그래서 해당 방식이 최신 방식은 아닐 수 있다. (잘은 모르지만, jks / pkcs12 방식이 주로 쓰이는 듯 하다)
요즘은 application.yaml 파일이 주로 쓰이나?
아무튼 이제 해야할 부분은 letsencrypt 인증서를 스프링에서 쓸수 있는 방식으로 변환하고자 한다.
# cat lets-pem2pfx.sh
#!/bin/bash
if [ "$2" == "" ]; then
echo "Usage) $0 {domain} {out-file.pfx}";
exit;
fi
out_dir=$PWD
domain=$1
out_file=$2
password=123456
cd /etc/letsencrypt/live/$domain
openssl pkcs12 -export \
-out $out_dir/$out_file \
-inkey privkey.pem -in cert.pem -certfile chain.pem \
-passin pass:$password -passout pass:$password
위와 같은 스크립트로 변환해줬다.
처음에는 암호없이 했는데, 스프링프로젝트가 안되서, 다시 암호를 넣고 했다.(원래 정책상 안되는지, 빠뜨린게 있는지는 ??)
다음 단계는 3개월(90일)마다 갱신을 해줘야 하니, 자동화가 필요하겠지.
1) certbot renew
2) convert pem to pfx
3) restart spring project
위 단계로 자동으로 갱신 / 재시작 하는 코드를 만들어야 겠다.(다음에 계속... )
반응형
'알아둘일' 카테고리의 다른 글
스프링프로젝트 letsencrypt 의 SSL 을 적용해보자. post_hook (0) | 2024.08.21 |
---|---|
요즘 핫한 postgres (feat. supabase) (0) | 2024.08.20 |
letsencrypt 를 좀더 활용해보자. (feat. post_hook) (0) | 2024.08.04 |
리액트 네이티브 (react-native) 설정 - 플러터개발환경에 추가할 부분 (0) | 2024.07.15 |
안드로이드 앱 출시는 힘겹구나! (feat. 비공개테스트) (0) | 2024.07.14 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.
,