본문 바로가기
Spring boot

Local 개발 환경에 Https 적용시키기(with mkcert)

by 리버🐦‍🔥 2024. 6. 7.

이번 포스팅은 Local 개발 환경에 mkcert를 통해 인증서를 발급하고 Https(443포트)를 적용시키는 방법을 다루고 있다.

 

Https 적용 순서

1. brew를 통해 mkcert 설치

2. mkcert를 사용하여 인증서 생성

3. application.yml 설정 및 프로젝트에 인증서 적용

1. brew를 통해 mkcert 설치

1. brew search mkcert를 통해 mkcert를 확인 후 brew install mkcert로 설치

 

2. mkcert -install 명령어를 통해 mkcert 설치 확인

2. mkcert를 사용하여 SSL 인증서 생성

1. 적용할 프로젝트의 “src/main/resorces” 위치로 이동

(추후에 application.yml 파일을 설정할 때, classpath로 경로를 설정하는데, spring boot의 classpath는 기본적으로 “src/main/resorces”로 설정되어있다.)

 

2. mkcert -key-file localhost-key.pem -cert-file localhost.pem localhost 127.0.0.1 ::1 명령어로 pem key 발급

 

3. openssl pkcs12 -export -in localhost.pem -inkey localhost-key.pem -out localhost.p12 -name "localhost"명령어를 통해 .pem 파일을 .p12 파일로 변환

3. Spring boot 프로젝트에 적용

1. application.yml 파일에 인증서를 적용시키는 코드를 작성

server:
  port: 443
  ssl:
    key-store: classpath:localhost.p12
    key-store-type: PKCS12
    key-store-password: { 비밀번호 입력 }

 

2. 서버를 실행시키고, https가 잘 적용되는지 확인

 

3. https 적용 완료

// local 환경에서 테스트를 위한 컨트롤러


package com.appledeveloperacademy.NC2.domain.test.controller;

import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@RequestMapping("/tests")
public class TestController {

    @GetMapping
    private String printTest() {

        return "test";
    }
}