본문 바로가기

IT

Letsencrypt 에서 받은 인증서 tomcat 적용

반응형

IIS 에서 사용중인 letsencrypt 인증서를 tomcat 에서 사용할 수 있도록 설정하는 방법입니다.

IIS 에서는 pfx 포맷의 인증서를 사용합니다.



윈도우용 letsencrypt.exe 를 사용하여 IIS 에 설정한 site domain 을 이용하여 인증서를 다운로드 받으면 아래와 같은 파일들이 들어있습니다.




tomcat 에 설정하기 위해서 pfx 파일과 비밀번호가 필요합니다, 한데 위의 pfx 를 이용할 수는 없습니다. pfx 를 만들 당시의 비밀번호를 모르니까요.;;;


그래서 pfx 를 하나 더 생성합니다. 비밀번호는 임의로 정합니다.


terminal 을 하나 띄워서 아래와 같이 입력합니다. 저는 ubuntu 에서 openssl 이 설치되어 있어서 ubuntu 에서 작업하였습니다.


$ openssl pkcs12 -export -out domain.name.co.kr.pfx \
> -inkey domain.name.co.kr-key.pem \
> -in domain.name.co.kr-crt.pem \
> -certfile domain.name.co.kr-chain.pem \
> -password pass:apassword


내용이 길어서 \ 기호를 이용하여 멀티라인으로 작성하였습니다.


위 내용에서 -out 에 해당하는 파일은 새로 생성되는 파일입니다.

그리고 -inkey, -in, -certfile 까지는 letsencrypt 에서 받은 파일입니다.

마지막의 -password 에서 pass: 이후에 자기만의 비밀번호를 입력하시면 됩니다.


이렇게하면 domain.name.co.kr.pfx 파일이 생성됩니다.


해당 파일을 tomcat 이 설치된 곳에 복사하여 붙여넣기 합니다. 저는 tomcat 루트 폴더에 cert 라는 폴더를 만들어서 파일을 붙여넣기 하였습니다.


마지막으로 tomcat 루트 폴더의 conf 폴더에 들어가서 server.xml 파일을 텍스트에디터를 이용하여 열어줍니다.

8443 번 포트를 일반적으로 https 를 위해서 할당합니다만, 이번 프로젝트에서 8092 번으로 사용하기로 하여 설정하였습니다.


<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8092" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="cert/domain.name.co.kr.pfx" keystorePass="apassword"
           clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12"/>


위와 같이 connctor 를 설정하고 톰캣을 재시작합니다.


그리고 접속을 시도하면 https://domain.name.co.kr:8092/ 로 접속하면 정상적으로 암호화된 연결로 접속할 수 있습니다.

반응형