개발일지/Spring

인증서 발급 및 Spring boot에서 HTTPS 서버 구현

E-room 2022. 11. 22. 11:52
728x90

로컬 환경에서 인증서를 생성하고, 인증서를 이용하여 HTTPS 서버를 만들어 보자

 

✔️ 인증서 발급

자바는 두 가지의 인증서 형식을 지원한다

  • PKCS12 (Public Key Cryptographic Standard #12) : 여러 인증서와 키를 포함할 수 있으며, 암호로 보호된 형식 (업계에서 널리 사용됨)
  • JKS (Java KeyStore) : PKCS12와 유사하다. 독점 형식이며, Java 환경으로 제한된다.

 

✅ macOS 기준, Homebrew를 이용하여 인증서를 발급받을 수 있다

# mkcert를 설치한다.
$ brew install mkcert

# firefox를 사용할 경우 필요에 따라 설치해주세요.
$ brew install nss

 

✅ 인증서 생성

로컬을 인증된 발급기관으로 추가한다.

$ mkcert -install

 

CA 생성 및 설치 이후 PKCS12 형식 인증서를 생성한다.

❗️해당 커맨드가 입력된 위치에 localhost.p12라는 파일이 생성됨

$ mkcert -pkcs12 localhost

 

✔️ HTTPS 서버 작성

  • 생성된 인증서를 resources 폴더로 이동한다.

  • application.yml 에서 관련 설정을 추가한다. (application.properties)
# application.yml 일 경우
server:
  ssl:
    key-store: classpath:localhost.p12 # 인증서 경로 작성
    key-store-type: PKCS12 # 인증서 형식 작성
    key-store-password: changeit # 인증서 비밀번호를 작성 changeit은 설정하지 않았을 때의 기본값
    
# application.properties 일 경우
server.ssl.key-store=classpath:localhost.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=changeit

 

작성 완료 후 서버를 실행하면 잘 작동하는 것을 확인할 수 있음

8080 (https) 인것을 알 수 있음

 

728x90