프로그래밍/JAVA

로컬에서 HTTPS 사용하기 위한 인증서 발급 및 톰캣 server.xml 설정

소나기_레드 2025. 3. 21. 16:18

테스트 환경 : 윈도우

 

1. 로컬 인증서 발급 프로그램 다운로드

https://github.com/FiloSottile/mkcert/releases 사이트로 이동하여 OS에 맞는 mkcert 를 다운로드 받는다.

 

 

2. 폴더를 하나 생성하여, 다운로드 받은 파일을 옮겨 놓는다.

 

3. 커맨드 창을 실행시키고, 2번에서 생성한 폴더로 이동한다.

 

4. 커맨드 창에서

    mkcert-1.4.4.exe -install

    명령을 실행하고, 보안경고 팝업이 표시되면 "예" 버튼을 클릭하여 CA(Certificate Authority) 인증서를 생성한다.

 

5. CA 인증서에서 PKCS(Public-Key Cryptography Standards) 인증서 생성

    커맨드 창에서

    mkcert-v1.4.4.exe -pkcs12 -p12-file localhost.p12 localhost

    명령을 실행하여 localhost 로 연결되는 인증서를 생성한다.  기본 비밀번호는 changeit

 

6. PKCS 인증서에서 톰캣용 jks 인증서로 변환

    커맨드 창에서

    keytool -importkeystore -srckeystore localhost.p12 -srcstoretype pkcs12 -srcstorepass changeit -destkeystore localhost.jks -deststoretype jks -deststorepass changeit 

    명령을 실행하여 인증서를 변환한다.

    톰캣에서는 JKS(Java Key Store) 파일을 사용.

 

    <참고>

    keytool은 Keystore 기반으로 인증서와 키를 관리할 수 있는 커맨드 방식의 유틸리티로 JDK에 포함되어 있는 프로그램

 

7.  톰캣에 적용

    톰캣 설치 폴더 아래의 conf 폴더에 있는 server.xml 파일을 열고, 8443 포트가 있는 설정의 주석을 풀고, 아래와 같이 수정하고, 톰캣을 재시작한다.

    로컬 컴퓨터에서 개발한 서버 프로그램에 https 로 접근할 수 있다.

     예 )  https://localhost:8443/testServer

 

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" 
               keystoreFile="D:\mkcert\localhost.jks" keystorePass="changeit"
               />