Library

SSL인증서 PEM (Apache)과 JKS (Tomcat)로 상호 변환

Andrew's Akashic Records 2023. 5. 2. 11:26
728x90

Apache와 Tomcat은 서로 다른 형식의 SSL 인증서를 사용합니다. Apache는 PEM 형식을 사용하는 반면, Tomcat은 Java KeyStore(JKS) 형식을 사용합니다. 따라서 Apache용 인증서를 Tomcat에 사용하거나 그 반대의 경우에는 인증서를 변환해야 합니다.

아래에서는 Apache에서 사용하는 PEM 형식의 인증서를 Tomcat에서 사용하는 JKS 형식으로 변환하는 방법과 그 반대로 JKS 형식의 인증서를 PEM 형식으로 변환하는 방법을 설명합니다.

1. PEM (Apache)을 JKS (Tomcat)로 변환하기:

먼저, OpenSSL과 keytool이 설치되어 있는지 확인하세요. 설치되어 있지 않다면 각각 설치해야 합니다.

아래의 명령어를 사용하여 PKCS12 형식의 파일을 생성합니다. 이때, 인증서 파일과 개인 키 파일이 필요합니다.

openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name myservercert

위 명령어에서 `server.crt`는 인증서 파일, `server.key`는 개인 키 파일, `server.p12`는 생성할 PKCS12 파일, `myservercert`는 생성될 인증서의 별칭입니다.

이제 PKCS12 파일을 사용하여 JKS 형식의 KeyStore 파일을 생성합니다.

keytool -importkeystore -destkeystore server.jks -srckeystore server.p12 -srcstoretype PKCS12 -alias myservercert

이 명령어에서 `server.jks`는 생성할 JKS 파일, `server.p12`는 이전 단계에서 생성한 PKCS12 파일, `myservercert`는 인증서의 별칭입니다.

2. JKS (Tomcat)를 PEM (Apache)로 변환하기:

먼저, keytool과 OpenSSL이 설치되어 있는지 확인하세요. 설치되어 있지 않다면 각각 설치해야 합니다.

아래의 명령어를 사용하여 JKS 파일에서 인증서와 개인 키를 추출합니다.

keytool -importkeystore -srckeystore server.jks -destkeystore server.p12 -srcstoretype JKS -deststoretype PKCS12

이 명령어에서 `server.jks`는 원본 JKS 파일, `server.p12`는 생성할 PKCS12 파일입니다.

이제 OpenSSL을 사용하여 인증서와 개인 키를 PEM 형식으로 추출합니다.

인증서 추출:

openssl pkcs12 -in server.p12 -nokeys -out server.crt


개인 키 추출:

openssl pkcs12 -in server.p12 -nocerts -nodes -out server.key


이 명령어에서 `server.p12`는 이전 단계에서 생성한 PKCS12 파일, `server.crt`는 추출할 인증서 파일, `server.key`는 추출할 개인 키 파일입니다.

이제 추출한 인증서 파일(`server.crt`)과 개인 키 파일(`server.key`)을 Apache 서버에 사용할 수 있습니다. Apache 서버의 SSL 설정을 업데이트하고, 인증서 파일과 개인 키 파일을 지정해야 합니다. 일반적으로 설정 파일은 `httpd.conf` 또는 `ssl.conf`에 있습니다.

Apache 설정에서 다음과 같이 인증서 파일과 개인 키 파일을 지정합니다.

SSLCertificateFile /path/to/your/server.crt
SSLCertificateKeyFile /path/to/your/server.key

경로를 해당 파일의 실제 경로로 변경하세요. 설정을 업데이트한 후 Apache 서버를 재시작하여 변경 사항을 적용합니다.

이렇게 하면, Tomcat에서 사용되는 JKS 형식의 인증서를 Apache에서 사용하는 PEM 형식으로 변환하였습니다. 이제 Apache 서버에서 SSL/TLS를 사용하여 암호화된 연결을 설정할 수 있습니다.

두 형식 간의 변환 작업을 완료한 후에는, 각 서버의 설정에 따라 적절한 인증서 파일과 개인 키 파일을 지정하고 서버를 재시작하여 변경 사항을 적용해야 합니다. 이렇게 하면 각 서버에서 SSL/TLS를 사용하여 암호화된 연결을 설정할 수 있습니다.

728x90