ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • openssl로 crt/pem 인증서를 p12로 변환하고 tomcat에 설치하기
    기타 2022. 10. 24. 13:17

    친구가 보안인증서 갱신해야 하는데 좀 도와달라고 해서 해봤다.
    이런건 100% 까먹기 마련이기 때문에, 두번 시간 낭비하지 않기 위해 기록한다. 반복숙달로 외우면 가장 좋고..!


    인증서를 pkcs12 형식으로 변환하기

    톰캣에 사용하려면 발급받은 인증서를 pkcs12 형식(.p12)으로 변환해야 한다. 발급받은 인증서가 pem 형식이면 바로 아래 설명은 건너뛰고 변환 부분부터 참고하면 된다. crt 형식이면 아래의 인증서 병합하기를 따라한다.

    인증서 병합하기

    1. cat ssl.crt - chain.crt > sslmerge.crt 입력
    2. 엔터 한 번 입력
    3. ctrl + D(EOF) 입력
    • 위의 예시는 인증서와 체인인증서를 병합하는 예시다.
      중간에 엔터를 입력해주지 않으면 파일 사이에 줄바꿈이 되지 않아서 ------END RSA CERTIFICATION------------START RSA CERTIFICATION------과 같이 입력되는 부분이 생겨서 이후의 openssl 진행이 안될 수 있다.
    • pem으로 저장해도 된다. 근데 나는 그냥 crt로 했다.
    • 만약 개인키, 인증서, 체인인증서, 루트인증서를 모두 병합하고 싶다면 전부 한 파일로 병합해도 된다. 다만 순서를 지켜서 병합해준다. (cat 개인키 인증서 체인 루트 > 병합파일)
    • 개인키를 병합하여 p12 변환을 시도하는 경우 키파일이 제대로 읽히지 않는 경우가 있다. 이때는 키 파일을 제외하고 병합한 다음에 p12로 내보낼때 -inkey 옵션을 써서 키파일을 추가하면 된다(후술하는 방식처럼).

    p12 변환

    1. openssl pkcs12 -export -in sslmerge.crt -inkey ssl.key -out ssl.p12 입력
    2. 키파일 비밀번호 입력
    3. 생성되는 p12파일의 보호 비밀번호 입력 및 확인

    p12 파일 설치하기

    톰캣을 설치해서 사용 중인 경우에는,

    1. 아마도 /usr/local/tomcat/conf/ssl/의 위치로 옮겨야 할 것이다. 다른 경로로 톰캣을 설치했다면, 설치한 경로로 이동하도록 하자.
    2. 해당 위치에 p12 파일을 옮긴 후 .../tomcat/conf/server.xml 파일을 열어서 Connector 설정을 바꿔준다. 포트가 "8443" 또는 "443"으로 되어있는 부분을 검색하면 쉽게 찾을 수 있을 것이다.
    3. 해당 부분으로 이동하면 keystoreFile, keystorePass라는 항목이 있을 건데, 각각 옮긴 p12 파일의 경로와 p12 보호 패스워드를 입력하면 된다.

    스프링부트와 같은 내장톰캣을 사용 중인 경우에는,

    1. 프로젝트 최상단 위치에 p12파일을 포함시킨다.
    2. 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

    끝이다.

    댓글

Designed by Tistory.