본문 바로가기
Study_Framework

[Spring] Spring Boot + SSL 설정(인증서 발급 포함)

by 타블로 2023. 4. 1.

# 인증서 발급

keytool -genkey -alias sslstore -keyalg RSA -keystore sslstore.jks
keytool -genkey -alias sslstore -keyalg RSA -keystore sslstore.pkcs12 -storetype pkcs12
keytool -list -v -keystore sslstore.pkcs12
keytool -export -alias sslstore -keystore sslstore.pkcs12 -rfc -file ssltera.cer
keytool -import -alias ssltrust -file ssltera.cer -keystore ssltrust.pkcs12

 

# 스프링 부트 설정

 

- application.yml 설정

 

server:
  port: 8443
  ssl:
    enabled: true
    protocol: TLS
    key-store-type: JKS
    key-alias: ayokeystore
    key-store: classpath:ssl/sslstore.pkcs12
    key-store-password: [비밀번호]
    key-password: [비밀번호]
    trust-store: classpath:ssl/sslstore.pkcs12
    trust-store-password: [비밀번호]

 

# 에러 발생 케이스

1. http -> https 호출시 에러 발생

 - 해결 20230408

  RestTemplate 설정 변경

    : HttpClient를 사용하여 아래와 같이 처리함

    1) 모든 인증서 신뢰 가능 처리

    2) 호스트명 유효성 검사 비활성화 처리

 

  HttpClient : HTTP 클라이언트 라이브러리

  RestTemplate :  Spring F/W HTTP 클라이언트

  HttpComponentsClientHttpRequestFactory : Spring에서 RestTemplate이 HttpClient를 사용할 수 있도록 함

RequestFactory HTTP Client
HttpComponentsClientHttpRequestFactory HttpClient
SimpleClientHttpRequestFactory URLConnection