IT/Spring
Spring Boot HTTPS 설정 & WebClient HTTPS
최고영회
2020. 2. 20. 10:12
728x90
반응형
SMALL
Spring Boot 에서 HTTP를 설정하는 것은 간단하다.
참고로 테스트 한 Spring Boot 의 버전은 2.2.1 이며 undertow 를 사용했다.
keytool 을 이용하여 인증서를 생성한다.
keytool -genkey -alias yhkim-ssl -keyalg RSA -keysize 2048 -validity 7300 -keypass 12341234 -keystore yhkim-server.jks
application.properties 또는 application.yaml 파일에 ssl 관련 옵션을 설정한다.
server:
servlet:
context-path: /linkage
port: 8082
ssl:
enabled: true
key-alias: yhkim-ssl
key-store: C:\\dev\\yhkim-server.jks
key-store-password: 12341234
key-store-type: PKCS12
start 해 보자.
https 로 잘 start 된다.
끝났다..... ssl.key-password 도 있는데 이걸로 설정하면 안된다.. 이것 때문에 약간의 삽질을..
이제 API Server 가 HTTPS 로 동작하니 webclient 도 https 통신이 되도록 변경해 보자.
// 기존 코드
return WebClient.builder()
.baseUrl(prop.getInfosaferHost())
.build();
// 변경된 코드
HttpClient httpClient = HttpClient.create().secure(t -> {
try {
t.sslContext(SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build());
} catch (SSLException e) {
log.error("SSLException\n", e);
}
});
return WebClient.builder()
.baseUrl(prop.getInfosaferHost())
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
728x90
반응형
LIST