티스토리 뷰

서버에서 통신할 때 https 적용해야하는 경우가 많다.

특히 개인정보 관련 고유식별정보, 개인신용정보, 개인식별정보 등의 민감정보들을 다루면

기본적으로 https 통신을 꼭 적용해야 한다.

 

https 통신에서는 인증서를 주고 받는 handshaking 과정을 거치기 때문에 http 통신보다는 성능이 안좋다.

상황에 따라서 적용하면 될듯.

 

HTTPS 적용하기 

사설 인증서 기준으로 작성

 

1. KeyStore 생성

 

Java가 설치된 환경이어야 하며 keytool 명령어를 이용하여 생성한다.

[ubuntu@aaserver:/work] keytool -genkeypair -alias test -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore test.p12 

Enter keystore password: 테스트123#

Re-enter new password: 테스트123#

What is your first and last name?

  [Unknown]:  godd

What is the name of your organizational unit?

  [Unknown]:  dev

What is the name of your organization?

  [Unknown]:  s

What is the name of your City or Locality?

  [Unknown]:  seoul

What is the name of your State or Province?

  [Unknown]:

What is the two-letter country code for this unit?

  [Unknown]:

Is CN=godd, OU=dev, O=s, L=seoul, ST=Unknown, C=Unknown correct?

  [no]:  yes

 

2. 생성한 KeyStore 프로젝트로 이동

생성된 PKCS12 파일 (확장명 .p12) 을 resource 폴더로 이동

 

 

3. Spring Boot 환경설정 

server:
    port: 8443
    ssl:
        key-alias: test
        key-store: classpath:test.p12
        key-store-type: PKCS12
        key-store-password: 테스트123#

위처럼 세팅을 하고 나면 http 통신 시 에러가 난다.

 

4. HTTP2 적용

https 설정을 하고 나면 http2 를 적용할 수 있다.

server:
    port: 8443
    ssl:
        key-alias: test
        key-store: classpath:test.p12
        key-store-type: PKCS12
        key-store-password: 테스트123#
    http2:
        enabled: true

맨 아래와 같이 http2.enabled 설정을 해주면 된다 끗

 

 

기본 설정에 대해서만 공유했지만 설명할 것이 굉장히 많은 포스트이다.

 

인증서 파일 포맷부터

인증서 구조,

SSL 통신 과정 (handshaking, 대칭키와 공개키 등),

1 WAY, 2 WAY SSL 통신에 대한 차이

http1.1 과 http2 차이..

 

다 생략하고 Spring Boot에 적용하는 방법만!

나머지는 다음에 다루는것으로

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함