-
openssl로 crt/pem 인증서를 p12로 변환하고 tomcat에 설치하기기타 2022. 10. 24. 13:17
친구가 보안인증서 갱신해야 하는데 좀 도와달라고 해서 해봤다.
이런건 100% 까먹기 마련이기 때문에, 두번 시간 낭비하지 않기 위해 기록한다. 반복숙달로 외우면 가장 좋고..!
인증서를 pkcs12 형식으로 변환하기
톰캣에 사용하려면 발급받은 인증서를 pkcs12 형식(.p12)으로 변환해야 한다. 발급받은 인증서가 pem 형식이면 바로 아래 설명은 건너뛰고 변환 부분부터 참고하면 된다. crt 형식이면 아래의 인증서 병합하기를 따라한다.
인증서 병합하기
cat ssl.crt - chain.crt > sslmerge.crt
입력- 엔터 한 번 입력
ctrl + D
(EOF) 입력
- 위의 예시는 인증서와 체인인증서를 병합하는 예시다.
중간에 엔터를 입력해주지 않으면 파일 사이에 줄바꿈이 되지 않아서------END RSA CERTIFICATION------------START RSA CERTIFICATION------
과 같이 입력되는 부분이 생겨서 이후의 openssl 진행이 안될 수 있다. - pem으로 저장해도 된다. 근데 나는 그냥 crt로 했다.
- 만약 개인키, 인증서, 체인인증서, 루트인증서를 모두 병합하고 싶다면 전부 한 파일로 병합해도 된다. 다만 순서를 지켜서 병합해준다. (cat 개인키 인증서 체인 루트 > 병합파일)
- 개인키를 병합하여 p12 변환을 시도하는 경우 키파일이 제대로 읽히지 않는 경우가 있다. 이때는 키 파일을 제외하고 병합한 다음에 p12로 내보낼때 -inkey 옵션을 써서 키파일을 추가하면 된다(후술하는 방식처럼).
p12 변환
openssl pkcs12 -export -in sslmerge.crt -inkey ssl.key -out ssl.p12
입력- 키파일 비밀번호 입력
- 생성되는 p12파일의 보호 비밀번호 입력 및 확인
p12 파일 설치하기
톰캣을 설치해서 사용 중인 경우에는,
- 아마도
/usr/local/tomcat/conf/ssl/
의 위치로 옮겨야 할 것이다. 다른 경로로 톰캣을 설치했다면, 설치한 경로로 이동하도록 하자. - 해당 위치에 p12 파일을 옮긴 후
.../tomcat/conf/server.xml
파일을 열어서Connector
설정을 바꿔준다. 포트가 "8443" 또는 "443"으로 되어있는 부분을 검색하면 쉽게 찾을 수 있을 것이다. - 해당 부분으로 이동하면
keystoreFile
,keystorePass
라는 항목이 있을 건데, 각각 옮긴 p12 파일의 경로와 p12 보호 패스워드를 입력하면 된다.
스프링부트와 같은 내장톰캣을 사용 중인 경우에는,
- 프로젝트 최상단 위치에 p12파일을 포함시킨다.
- application.properties에 p12 설정을 추가한다.
server.port=443 server.ssl.enabled=true server.ssl.key-store-type=PKCS12 server.ssl.key-store-password=보호패스워드 server.ssl.protocol=TLS server.ssl.enabled-protocols=TLSv1.2이상을권장한다 server.ssl.ciphers=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHERSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384
끝이다.
'기타' 카테고리의 다른 글
우아한 테크캠프 6기 코딩테스트 후기 및 팁 (5) 2023.05.09 갑자기 프로젝트 바람이 돌아서 (3) 2022.12.16 질문답변: DTO를 만들 때 왜 HTTP Method별로 따로 만들어야 하나요? (0) 2022.10.22 어제는 프로젝트 발표일이었다. 코드스테이츠 백엔드 부트캠프의. (2) 2022.10.13 대략적인 서버 구성 (0) 2022.08.25 간단한 사용법: Java/Selenium과 함께한 자동로그인(이라고 쓰고 삽질이라고 읽는 것) (0) 2022.08.05