_DoYun
_yunilog
_DoYun
전체 방문자
오늘
어제
  • 전체 (83)
    • spring boot main 프로젝트 해결 (2)
    • 회고 (0)
      • pre-project(stackoverflow) (0)
    • 지식창고 (25)
    • 후기 (1)
    • LINUX (2)
    • HTML&CSS (2)
    • SQL (2)
    • 기술 면접 질문지 (1)
      • Chapter1 (1)
      • Chapter2 (0)
    • JAVA (25)
      • JAVA 기초 문법 (1)
      • Collection (1)
      • Enum,Annotation,Stream,람다 (3)
      • 입출력, Thread, JVM (1)
      • Spring Framework (3)
      • Spring MVC (6)
      • JPA (1)
      • Test (3)
      • API 문서 (1)
      • 인증&보안 (2)
      • AWS (2)
    • 알고리즘 (19)
      • 프로그래머스_LEVEL_3 (6)
      • 백준 (0)
      • 프로그래머스_LEVEL_2 (13)
    • Comento (2)
    • Inflearn (2)
      • HTTP (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
_DoYun

_yunilog

JAVA/인증&보안

[Java Spring] intellij 인증서 발급 및 HTTPS 서버 구현 방법(mkcert)

2022. 7. 28. 11:59

자바는 대표적으로 두 가지의 인증서 형식을 지원합니다.

1) PKCS12 (Public Key Cryptographic Standards #12) : 여러 인증서와 키를 포함할 수 있으며, 암호로 보호된 형식입니다. 업계에서 널리 사용됩니다.

2) JKS (java keystore : PKCS12와 유사합니다. 독점 형식이며 Java 환경으로 제한됩니다.

 

이번에는 PKCS12를 사용해서 인증서를 발급받아 보겠습니다.

 

# 설치

mksert라는 프로그램을 이용해서 로컬 환경(내 컴퓨터)에서 신뢰할 수 있는 인증서를 만들 수 있습니다. mkcert는 PKCS12 형식만 지원합니다.

 

Window 사용자의 경우 WSL 터미널에 다음 명령어를 이용해 설치합니다.

$ sudo apt install libnss3-tools
$ wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
$ chmod +x mkcert
$ sudo cp mkcert /usr/local/bin/

만약 설치가 안되는 경우 sudo apt update 명령어를 실행한 후 다시 설치를 진행해주세요.

*위와 같이 Failed가 발생할 경우 sudo apt update 실행 후 진행하시면 수월하게 진행됩니다.

 

# 인증서 생성

먼저 다음 명령어를 통해 로컬을 인증된 발급기관으로 추가해야 합니다.

$ mkcert -install

 

CA가 생성되고 설치되면 PKCS12 형식 인증서를 생성할 수 있습니다.

PKCS12 인증서를 생성하기 위해 다음 명령을 사용합니다.

$ mkcert -pkcs12 localhost

 

이제 옵션으로 추가한 localhost에서 사용할 수 있는 인증서가 완성되었습니다. 해당 커맨드를 입력한 위치에 localhost.p12라는 파일이 생성된 것을 확인할 수 있습니다.

 

 

# HTTPS 서버 작성

Spring Boot를 이용하면 HTTPS 서버를 간단하게 작성할 수 있습니다.

먼저 생성된 인증서를 resources 폴더로 이동합니다.

 

그 다음 application.properties 에서 관련 설정을 추가 합니다.

server.ssl.key-store=classpath:localhost.p12    -> 인증서 경로를 적습니다.
server.ssl.key-store-type=PKCS12                -> 인증서 형식을 적습니다.
server.ssl.key-store-password=changeit          -> 인증서 비밀번호를 적습니다.

//여기서 비밀번호인 changeit은 비밀번호를 설정하지 않았을 때의 기본값입니다.
//인증서 비밀번호는 인증서를 생성할 때 설정하거나 생성 후 변경해줄 수 있습니다.

작성 완료 후 서버를 실행해보면 다음과 같이 HTTPS 서버가 잘 작동하는 것을 확인하실 수 있습니다.

'JAVA > 인증&보안' 카테고리의 다른 글

[Spring 자바] OAuth2의 개념과 동작 흐름에 대해 알아보자  (0) 2022.07.29
    'JAVA/인증&보안' 카테고리의 다른 글
    • [Spring 자바] OAuth2의 개념과 동작 흐름에 대해 알아보자
    _DoYun
    _DoYun

    티스토리툴바