본문 바로가기

Linux/일반

Tomcat SSL 인증서 설치 ( crt, pem -> pfx -> jks 변환)

Tomcat에 인증서를 설치하기 위해서는 crt 또는 pem 포맷으로 되어있는 인증서를 Tomcat에서 제공하는 형태의 pfx 또는 jks로 변환해서 적용해야 한다. 

 

 

인증서의 경우, 어떤 업체에서 인증서를 구매하냐에 따라 인증서를 다르게 다운받을 수 있게 되는데 보통의 경우 

 

도메인.crt

도메인.csr

도메인.pem

도메인.key

도메인.nopass.key

Chain_RootCA_Bundle.crt 

 

위 형태의 인증서들을 다운받게 될 것이다.

 

 

Tomcat의 경우 위 형태의 인증서로 바로 적용이 불가능해서 pfx 또는 jks 확장자로 변환하여 적용해야하는데

이때 위의 인증서들을 합친 후 변환해주어야 한다.

 

 

인증서 다운 시, crt 파일과 key 파일, Chain 파일이 있다면, 

crt파일과 chain 파일을 합쳐주면 된다.

이때 순서는 crt 파일 + chain 파일 순서로 crt 파일이 위에 오고 그 밑에 chain 파일이 올 수 있도록 합쳐주어야한다.

 

ex )

cat juu98.com.crt Chain_RootCA_Bundle.crt > juu98.com.pem

 

 

만약 인증서 다운 시 crt 파일이 존재하지 않고 pem 파일이 존재한다면

pem파일과 chain 파일을 합쳐주면 된다.

이때 순서는 pem 파일 + chain 파일 순서로 pem 파일이 위에 오고 그 밑에 chain 파일이 올 수 있도록 합쳐주어야한다.

(pem 파일을 열어보면 BEGIN CERTIFICATE으로 시작하는것으로 보아, crt파일을 포함한 파일인데 pem 형식의 인증서인거같음)

 

ex )

cat juu98.com.pem Chain_RootCA_Bundle.crt > juu98.com.crt 

 

 

 

 

확장자 변경 

 

[ crt -> pfx ]

openssl pkcs12 -export -name juu98.com -in juu98.com.crt -inkey juu98.com.key -out juu98.com.pfx

 

 

[ pem -> pfx ]

openssl pkcs12 -export -name juu98.com -in juu98.com.pem -inkey juu98.com.key -out juu98.com.pfx

 

 

=> 이때, 인증서에 패스워드를 걸고 싶지 않다면 nopass.key 파일 사용하면 됨.

 

 

 

[ pfx -> jks ]

keytool -importkeystore -srckeystore juu98.com.pfx -srcstoretype pkcs12 -destkeystore juu98.jks -deststoretype jks

 

 

 

 

Tomcat SSL 설정 

 

[ pfx 확장자 인증서 등록 ]

pfx 확장자의 경우 사용 원할 경우 가능하지만, 확장자를 명시해주어야한다. 

 

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" server=" " URIEncoding="utf-8"/>

        <Connector port="443"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75" URIEncoding="utf-8"
        enableLookups="false" disableUploadTimeout="true"
        acceptCount="100" debug="0" scheme="https" secure="true" SSLEnabled="true"
        clientAuth="false" sslEnabledProtocols="TLSv1.2,TLSv1.3"
        keystoreFile="/web/ssl/juu98.com.pfx"
        keystoreType="PKCS12"
        keystorePass="1234"
/>

 

 

[ jks 확장자 인증서 등록 ]

 

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" server=" " URIEncoding="utf-8"/>

        <Connector port="443"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75" URIEncoding="utf-8"
        enableLookups="false" disableUploadTimeout="true"
        acceptCount="100" debug="0" scheme="https" secure="true" SSLEnabled="true"
        clientAuth="false" sslEnabledProtocols="TLSv1.2,TLSv1.3"
        keystoreFile="/web/ssl/juu98.com.jks
        keystorePass="1234"
/>

 

 

 

변경 완료 후 tomcat 재시작

 

# service tomcat9 restart 

 

 

 

 

 

 

 

 

 

인증서 형식 참고 url : https://www.lesstif.com/software-architect/pem-cer-der-crt-csr-113345004.html

 

PEM 과 CER/DER/CRT/CSR 형식 파일이란?

 

www.lesstif.com